Rozdiel medzi AOP a OOP

AOP vs OOP

AOP (Aspect-Oriented Programming) a OOP (Object-Oriented Programming) sú dve programovacie paradigmy. Programovacie paradigma je základný štýl počítačového programovania. Programovacie paradigmy sa líšia v tom, ako je zastúpený každý prvok programov a ako je každý krok definovaný na riešenie problémov. Ako už názov napovedá, OOP sa zameriava na reprezentovanie problémov pomocou objektov v reálnom svete a ich správania, zatiaľ čo AOP sa zaoberá rozdelením programov na oddelenie problémov prierezu..

Čo je AOP?

AOP je programové paradigma, ktoré sa zaoberá rozdelením programu na súdržné oblasti funkcionality (nazývané obavy), ktoré zasahujú do viacerých oblastí, aby sa zvýšila modularita. Podpora pre abstrakcie (napríklad triedy, metódy atď.) Na zoskupovanie a zapuzdrenie obáv do jedinečných entít sa poskytuje v mnohých ďalších programovacích paradigmách. Avšak obavy (ako napríklad „Protokolovanie“) sú príkladmi problémov prierezu, pretože každá protokolovaná časť systému je ovplyvnená stratégiou použitou na protokolovanie. Hlavným zameraním všetkých implementácií AOP je mať vhodné prierezové výrazy, ktoré zachytia všetky obavy na jednom mieste.

Čo je OOP?

V OOP sa zameriava na premýšľanie o probléme, ktorý sa má vyriešiť z hľadiska prvkov skutočného sveta, a predstavuje problém z hľadiska objektov a ich správania. Triedy zobrazujú abstraktné reprezentácie objektov skutočného sveta. Triedy sú ako plány alebo šablóny, ktoré zhromažďujú podobné položky alebo veci, ktoré je možné zoskupiť. Triedy majú vlastnosti nazývané atribúty. Atribúty sú implementované ako globálne a inštančné premenné. Metódy v triedach predstavujú alebo definujú správanie týchto tried. Metódy a atribúty tried sa nazývajú členovia triedy. Inštancia triedy sa nazýva objekt. Preto je objekt dátovou štruktúrou, ktorá sa veľmi podobá nejakému skutočnému objektu.

Existuje niekoľko dôležitých konceptov OOP, ako napríklad abstrakcia údajov, zapuzdrenie, polymorfizmus, zasielanie správ, modularita a dedičnosť. Typicky sa zapuzdrenie dosiahne privedením atribútov do súkromia, zatiaľ čo sa vytvoria verejné metódy, ktoré sa dajú použiť na prístup k týmto atribútom. Dedičnosť umožňuje používateľovi rozšíriť triedy (nazývané podtriedy) z iných tried (nazývaných super triedy). Polymorfizmus umožňuje programátorovi nahradiť objekt triedy namiesto objektu jeho nadtriedy. Zvyčajne sa podstatné mená nájdené v definícii problému stávajú priamo triedami v programe. A podobne sa slovesá stávajú metódami. Niektoré z najpopulárnejších jazykov OOP sú Java a C #.

Aký je rozdiel medzi AOP a OOP?

Kľúčovým rozdielom medzi OOP a AOP je to, že cieľom OOP je rozdeliť programovaciu úlohu na objekty, ktoré enkapsulujú údaje a metódy, zatiaľ čo cieľom AOP je rozdeliť program na prierezové obavy. AOP v skutočnosti nie je konkurentom OOP, pretože sa vynoril z paradigmy OOP. AOP rozširuje OOP riešením niektorých jeho problémov. AOP predstavuje úhľadné spôsoby, ako implementovať prierezové obavy (ktoré mohli byť rozptýlené na viacerých miestach v zodpovedajúcej implementácii OOP) na jednom mieste. Preto program AOP robí program čistejším a voľnejším.