AOP vs OOP
AOP (Aspektorienterad programmering) och OOP (Objektorienterad programmering) är två programmeringsparadigmer. Ett programmeringsparadigm är en grundläggande typ av datorprogrammering. Programmeringsparadigmer skiljer sig åt hur varje del av programmen representeras och hur varje steg definieras för att lösa problem. Som namnet antyder, fokuserar OOP på att representera problem med användning av verkliga objekt och deras beteende, medan AOP handlar om att bryta ner programmen för att skilja problem med tvärsnitt.
Vad är AOP?
AOP är ett programmeringsparadigm som handlar om att bryta ner ett program i sammanhängande områden med funktionalitet (kallad oro) som skär över flera områden för att öka modulariteten. Stöd för abstraktioner (som klasser, metoder, etc.) för att gruppera och inkapsla frågor till unika enheter finns i många andra programmeringsparadigmer. Men oro (till exempel "Logging") är exempel på övergripande problem, eftersom varje loggad del av systemet påverkas av strategin som används för loggning. Huvudfokuset på alla AOP-implementeringar är att ha lämpliga tvärsnitt för att fånga alla problem på en enda plats.
Vad är OOP?
I OOP fokuserar man på att tänka på problemet som ska lösas när det gäller verkliga element och representerar problemet när det gäller objekt och deras beteende. Klasser visar de abstrakta representationerna av verkliga världsobjekt. Klasser är som ritningar eller mallar, som samlar liknande saker eller saker som kan grupperas tillsammans. Klasser har egenskaper som heter attribut. Attributen implementeras som globala och instansvariabler. Metoder i klasserna representerar eller definierar beteendet hos dessa klasser. Metoder och attribut för klasser kallas klassens medlemmar. En förekomst av en klass kallas ett objekt. Därför är ett objekt en datastruktur som nära liknar något verkligt objekt.
Det finns flera viktiga OOP-begrepp som Data Abstraktion, Encapsulation, Polymorphism, Messaging, Modularity och Arv. Typiskt uppnås inkapsling genom att göra attributen privata, samtidigt som man skapar offentliga metoder som kan användas för att få tillgång till dessa attribut. Erfarenhet gör att användaren kan förlänga klasser (kallad underklasser) från andra klasser (kallad superklasser). Polymorfism tillåter programmeraren att ersätta ett objekt av en klass i stället för ett objekt av sin superklass. Vanligtvis blir substantiverna i problemdefinitionen direkt klasser i programmet. Och på samma sätt blir verben metoder. Några av de mest populära OOP-språken är Java och C #.
Vad är skillnaden mellan AOP och OOP?
Den viktigaste skillnaden mellan OOP och AOP är att OOP fokuserar på att bryta ner programmeringsuppgiften i objekt som inkapslar data och metoder, medan AOP fokuserar på att bryta ner programmet för att korsa problem. Faktum är att AOP inte är en konkurrent för OOP, eftersom det framkom ur OOP-paradigmet. AOP utökar OOP genom att ta upp några av sina problem. AOP introducerar snygga sätt att genomföra övergripande problem (som kan ha spridits över flera ställen i motsvarande OOP-implementering) på en enda plats. Därför gör AOP programrenare och mer löst kopplad.