AOP vs OOP
AOP (programowanie zorientowane na aspekty) i OOP (programowanie zorientowane obiektowo) to dwa paradygmaty programowania. Paradygmat programowania jest podstawowym stylem programowania komputerowego. Paradygmaty programowania różnią się sposobem reprezentacji każdego elementu programów i sposobem definiowania każdego kroku w celu rozwiązania problemów. Jak sama nazwa wskazuje, OOP koncentruje się na reprezentowaniu problemów związanych z rzeczywistymi obiektami i ich zachowaniem, podczas gdy AOP zajmuje się rozbiciem programów na oddzielne problemy przekrojowe.
Co to jest AOP?
AOP to paradygmat programowania, który zajmuje się rozbiciem programu na spójne obszary funkcjonalności (zwane obawami), które przecinają wiele obszarów, w celu zwiększenia modułowości. Wsparcie dla abstrakcji (takich jak klasy, metody itp.) W celu grupowania i ujmowania obaw w unikatowych jednostkach jest zapewnione w wielu innych paradygmatach programowania. Jednak obawy (takie jak „rejestrowanie”) są przykładami problemów przekrojowych, ponieważ na każdą zalogowaną część systemu ma wpływ strategia używana do rejestrowania. Głównym celem wszystkich implementacji AOP jest posiadanie odpowiednich wyrażeń przekrojowych, aby uchwycić wszystkie obawy w jednym miejscu.
Co to jest OOP?
W OOP nacisk kładziony jest na myślenie o problemie do rozwiązania w kategoriach elementów świata rzeczywistego oraz reprezentowanie problemu w kategoriach obiektów i ich zachowania. Klasy przedstawiają abstrakcyjne przedstawienia rzeczywistych obiektów. Klasy są jak plany lub szablony, które gromadzą podobne przedmioty lub rzeczy, które można grupować razem. Klasy mają właściwości zwane atrybutami. Atrybuty są implementowane jako zmienne globalne i zmienne instancji. Metody w klasach reprezentują lub definiują zachowanie tych klas. Metody i atrybuty klas nazywane są członkami klasy. Instancja klasy nazywana jest obiektem. Dlatego obiekt jest strukturą danych, która bardzo przypomina niektóre obiekty świata rzeczywistego.
Istnieje kilka ważnych koncepcji OOP, takich jak abstrakcja danych, enkapsulacja, polimorfizm, przesyłanie wiadomości, modułowość i dziedziczenie. Zazwyczaj hermetyzacja jest osiągana przez uczynienie atrybutów prywatnymi, przy jednoczesnym utworzeniu metod publicznych, których można użyć do uzyskania dostępu do tych atrybutów. Dziedziczenie pozwala użytkownikowi rozszerzać klasy (zwane podklasami) z innych klas (zwanych superklasami). Polimorfizm pozwala programiście podstawić obiekt klasy w miejsce obiektu jego superklasy. Zazwyczaj rzeczowniki znalezione w definicji problemu stają się bezpośrednio klasami w programie. Podobnie czasowniki stają się metodami. Niektóre z najpopularniejszych języków OOP to Java i C #.
Jaka jest różnica między AOP a OOP?
Kluczowa różnica między OOP i AOP polega na tym, że OOP koncentruje się na rozbiciu zadania programistycznego na obiekty, które zawierają dane i metody, podczas gdy AOP skupia się na rozbiciu programu na problemy przekrojowe. W rzeczywistości AOP nie jest konkurentem dla OOP, ponieważ wyszedł z paradygmatu OOP. AOP rozszerza OOP, rozwiązując kilka jego problemów. AOP wprowadza zgrabne sposoby realizacji problemów przekrojowych (które mogły być rozproszone w kilku miejscach w odpowiedniej implementacji OOP) w jednym miejscu. Dlatego AOP sprawia, że program jest czystszy i luźniej sprzężony.