Erinevus AOP ja OOP vahel

AOP vs OOP

AOP (aspektorienteeritud programmeerimine) ja OOP (objektorienteeritud programmeerimine) on kaks programmeerimise paradigmat. Programmeerimisparadigma on arvutiprogrammeerimise põhistiil. Programmeerimisparadigmad erinevad programmide iga elemendi esindatuse ja probleemide lahendamise iga sammu määratlemise poolest. Nagu nimigi ütleb, keskendub OOP probleemide esindamisele, kasutades reaalse maailma objekte ja nende käitumist, samal ajal kui AOP tegeleb programmide jaotamisega, et eraldada läbilõikavad probleemid.

Mis on AOP?

AOP on programmeerimise paradigma, mis tegeleb modulaarsuse suurendamiseks programmi jaotamisega funktsionaalseteks ühtseteks piirkondadeks (nn mured), mis kattuvad mitmest piirkonnast. Abstraktsioonide (nt klassid, meetodid jne) toetamine ainulaadsete olemite rühmitamiseks ja nendesse koondamiseks on ette nähtud paljudes teistes programmeerimisparadigmades. Kuid mured (näiteks „Logimine”) on näited probleemide läbilõikamisest, sest logimisel kasutatav strateegia mõjutab kõiki süsteemi logitud osi. Kõigi AOP rakenduste põhirõhk on sobivatel läbilõigetel, et kajastada kõiki probleeme ühes kohas.

Mis on OOP?

OOP-is keskendutakse lahendatava probleemi mõtlemisele reaalse maailma elementide osas ning probleemi esindamisele objektide ja nende käitumise osas. Klassid kujutavad reaalmaailma objektide abstraktseid kujutisi. Klassid on nagu joonised või mallid, kuhu kogutakse sarnaseid objekte või asju, mida saab grupeerida. Klassidel on omadused, mida nimetatakse atribuutideks. Atribuute rakendatakse globaalsete ja esinemismuutujatena. Klasside meetodid tähistavad või määratlevad nende klasside käitumist. Klasside meetodeid ja atribuute nimetatakse klassi liikmeteks. Klassi eksemplari nimetatakse objektiks. Seetõttu on objekt andmestruktuur, mis sarnaneb väga mõne reaalse objektiga.

On mitmeid olulisi OOP-kontseptsioone, näiteks andmete abstraktsioon, kapseldamine, polümorfism, sõnumside, modulaarsus ja pärimine. Tavaliselt saavutatakse kapseldamine atribuutide privaatseks muutmisega, luues samal ajal avalikud meetodid, mida saab kasutada nendele atribuutidele juurdepääsu saamiseks. Pärimine võimaldab kasutajal laiendada klasse (nn alamklasse) teistest klassidest (nn superklassid). Polümorfism võimaldab programmeerijal oma superklassi objekti asemel asendada klassi objekt. Tavaliselt muutuvad probleemi määratlusest leitud nimisõnad programmis vahetult klassideks. Ja samamoodi saavad verbidest meetodid. Mõned kõige populaarsemad OOP keeled on Java ja C #.

Mis vahe on AOP ja OOP??

Peamine erinevus OOP-i ja AOP-i vahel on see, et OOP-i eesmärk on jaotada programmeerimisülesanne objektideks, mis kapseldavad andmeid ja meetodeid, samal ajal kui AOP-i eesmärk on jaotada programm ristsuunalisteks probleemideks. Tegelikult ei ole AOP OOP jaoks konkurent, kuna see tuli välja OOP paradigmast. AOP laiendab OOP-d, käsitledes väheseid probleeme. AOP tutvustab kena viise, kuidas rakendada ristteemalisi probleeme (mis võisid hajutada vastavas OOP rakenduses mitmesse kohta) ühes kohas. Seetõttu muudab AOP programmi puhtamaks ja lõdvemalt ühendatud.