AOP pret OOP
AOP (uz aspektu orientēta programmēšana) un OOP (uz objektu orientēta programmēšana) ir divas programmēšanas paradigmas. Programmēšanas paradigma ir pamata programmēšanas stils. Programmēšanas paradigmas atšķiras ar to, kā tiek attēlots katrs programmu elements un kā katrs solis ir noteikts problēmu risināšanai. Kā norāda nosaukums, OOP koncentrējas uz problēmu attēlošanu, izmantojot reālās pasaules objektus un to uzvedību, savukārt AOP nodarbojas ar programmu sadalīšanu, lai nodalītu šķērsgriezuma problēmas.
Kas ir AOP?
AOP ir programmēšanas paradigma, kuras mērķis ir palielināt programmas modulāciju, lai sadalītu programmu līdz vienotām funkcionalitātes jomām (ko sauc par bažām), kas sadalās pa vairākiem apgabaliem. Daudzās citās programmēšanas paradigmās tiek sniegts atbalsts abstrakcijām (piemēram, klasēm, metodēm utt.), Lai grupētu un iekļautu problēmas unikālos entītijos. Bet bažas (piemēram, “mežizstrāde”) ir šķērsgriezuma problēmu piemēri, jo katru reģistrēto sistēmas daļu ietekmē reģistrēšanai izmantotā stratēģija. Visu AOP ieviešanu galvenā uzmanība ir pievērsta piemērotām šķērsgriezuma izteiksmēm, lai visas problēmas uztvertu vienā vietā.
Kas ir OOP?
OOP uzmanības centrā ir domāšana par risināmo problēmu reālās pasaules elementu izteiksmē un problēmas attēlošana attiecībā uz objektiem un to izturēšanos. Klases attēlo reālas pasaules objektu abstraktus attēlojumus. Klases ir kā plāni vai veidnes, kurās apkopoti līdzīgi priekšmeti vai lietas, kuras var sagrupēt. Klasēm ir īpašības, ko sauc par atribūtiem. Atribūti tiek ieviesti kā globālie un instanču mainīgie. Klases metodes atspoguļo vai nosaka šo klašu izturēšanos. Nodarbību metodes un atribūtus sauc par klases dalībniekiem. Klases instanci sauc par objektu. Tāpēc objekts ir datu struktūra, kas ļoti līdzinās kādam reālās pasaules objektam.
Ir vairāki svarīgi OOP jēdzieni, piemēram, datu abstrakcija, iekapsulēšana, polimorfisms, ziņojumapmaiņa, modulārais raksturs un mantojums. Parasti iekapsulēšana tiek panākta, padarot atribūtus privātus, vienlaikus izveidojot publiskas metodes, kuras var izmantot, lai piekļūtu šiem atribūtiem. Mantojums ļauj lietotājam paplašināt klases (sauktas par apakšklasēm) no citām klasēm (ko sauc par superklases). Polimorfisms ļauj programmētājam aizstāt klases objektu tās superklases objekta vietā. Parasti problēmas definīcijā atrodamie lietvārdi programmā tieši kļūst par klasēm. Un līdzīgi darbības vārdi kļūst par metodēm. Dažas no populārākajām OOP valodām ir Java un C #.
Kāda ir atšķirība starp AOP un OOP?
Galvenā atšķirība starp OOP un AOP ir tāda, ka OOP uzmanības centrā ir programmēšanas uzdevuma sadalīšana objektos, kas satur datus un metodes, savukārt AOP uzmanības centrā ir programmas sadalīšana, lai pārvarētu bažas. Faktiski AOP nav konkurents OOP, jo tas parādījās ārpus OOP paradigmas. AOP paplašina OOP, risinot dažas no savām problēmām. AOP ievieš glītus veidus, kā vienuviet īstenot bažas par šķērsgriezumu (kuras varētu būt izkaisītas vairākās vietās attiecīgajā OOP ieviešanā). Tāpēc AOP padara programmu tīrāku un brīvāk savienotu.