AOP vs OOP
AOP (Aspektno orijentirano programiranje) i OOP (Objektno orijentirano programiranje) dvije su paradigme programiranja. Paradigma programiranja temeljni je stil računalnog programiranja. Paradigme programiranja razlikuju se po tome kako je svaki element programa predstavljen i kako je svaki korak definiran za rješavanje problema. Kao što ime sugerira, OOP se usredotočuje na predstavljanje problema korištenjem objekata iz stvarnog svijeta i njihovog ponašanja, dok se AOP bavi rastavljanjem programa na razdvajanje međusektorskih pitanja.
Što je AOP?
AOP je programska paradigma koja se bavi rastavljanjem programa na kohezivna područja funkcionalnosti (zvana zabrinutosti) koja se prožimaju kroz više područja, kako bi se povećala modularnost. Podrška za apstrakcije (kao što su klase, metode itd.) za grupiranje i kapsuliranje problema u jedinstvene entitete pruža se u mnogim drugim paradigmama programiranja. Ali problemi (kao što je "Zapisivanje") primjeri su međusektorskih problema, jer na svaki zabilježeni dio sustava utječe strategija koja se koristi za evidentiranje. Glavni fokus svih implementacija AOP-a je imati prikladne multidisciplinarne izraze za hvatanje svih problema na jednom mjestu.
Što je OOP?
U OOP-u fokus je na razmišljanju o problemu koji treba riješiti u smislu elemenata stvarnog svijeta i predstavljanju problema u smislu objekata i njihovog ponašanja. Klase prikazuju apstraktne prikaze objekata stvarnog svijeta. Klase su poput nacrta ili predložaka koji okupljaju slične stavke ili stvari koje se mogu zajedno grupirati. Klase imaju svojstva koja se nazivaju atributi. Atributi su implementirani kao globalne varijable i varijable instance. Metode u klasama predstavljaju ili definiraju ponašanje tih klasa. Metode i atributi klasa nazivaju se članovima klase. Instanca klase naziva se objekt. Prema tome, objekt je struktura podataka koja vrlo nalikuje objektu iz stvarnog svijeta.
Postoji nekoliko važnih OOP koncepata kao što su apstrakcija podataka, enkapsulacija, polimorfizam, slanje poruka, modularnost i nasljeđivanje. Tipično, enkapsulacija se postiže postavljanjem atributa privatnim, dok se stvaraju javne metode koje se mogu koristiti za pristup tim atributima. Nasljeđivanje omogućuje korisniku da proširi klase (zvane podklase) iz drugih klasa (zvane super klase). Polimorfizam omogućuje programeru da zamijeni objekt klase umjesto objekta njegove super klase. Tipično, imenice koje se nalaze u definiciji problema izravno postaju klase u programu. I slično, glagoli postaju metode. Neki od najpopularnijih OOP jezika su Java i C.
Koja je razlika između AOP i OOP?
Ključna razlika između OOP-a i AOP-a je u tome što je fokus OOP-a raščlanjivanje programskog zadatka na objekte koji enkapsuliraju podatke i metode, dok je fokus AOP-a raščlanjivanje programa na međusektorske probleme. Zapravo, AOP nije konkurencija OOP-u, jer je nastao iz OOP paradigme. AOP proširuje OOP rješavanjem nekoliko njegovih problema. AOP uvodi zgodne načine za implementaciju višeslojnih pitanja (koja su mogla biti raštrkana na nekoliko mjesta u odgovarajućoj OOP implementaciji) na jednom mjestu. Stoga AOP čini program čišćim i labavije povezanim.