Forskel mellem AOP og OOP
AOP vs OOP
AOP (Aspect-orienteret programmering) og OOP (Objektorienteret programmering) er to programmeringsparadigmer. Et programmeringsparadigme er en grundlæggende stil for computerprogrammering. Programmeringsparadigmer er forskellige i, hvordan hvert element af programmerne er repræsenteret, og hvordan hvert trin er defineret til løsning af problemer. Som navnet antyder, fokuserer OOP på at repræsentere problemer ved brug af virkelige objekter og deres adfærd, mens AOP beskæftiger sig med at nedbryde programmerne for at adskille tværgående bekymringer.
Hvad er AOP?
AOP er et programmeringsparadigme, der beskæftiger sig med at nedbryde et program til sammenhængende områder af funktionalitet (kaldet bekymringer), der skærer tværs over flere områder for at øge modulariteten. Støtte til abstraktioner (såsom klasser, metoder osv.) Til gruppering og indkapsling af bekymringer i unikke enheder findes i mange andre programmeringsparadigmer. Men bekymringer (som "Logging") er eksempler på tværgående bekymringer, fordi hver logget del af systemet er påvirket af strategien, der anvendes til logning. Hovedfokuset på alle AOP-implementeringer er at have egnede tværgående udtryk til at fange alle bekymringer på et enkelt sted.
Hvad er OOP?
I OOP fokuserer man på det problem, der skal løses i forhold til virkelige elementer, og repræsenterer problemet med hensyn til objekter og deres adfærd. Klasser skildrer de abstrakte repræsentationer af virkelige verden objekter. Klasser er som tegninger eller skabeloner, der samler lignende elementer eller ting, der kan grupperes sammen. Klasser har egenskaber kaldet attributter. Attributter implementeres som globale og instansvariabler. Metoder i klasserne repræsenterer eller definerer opførelsen af disse klasser. Metoder og attributter af klasser kaldes medlemmerne af klassen. Et eksempel på en klasse kaldes et objekt. Derfor er et objekt en datastruktur, der ligner noget real-world objekt.
Der er flere vigtige OOP-begreber som Data-abstraktion, Encapsulation, Polymorphism, Messaging, Modularity og Arv. Typisk indkapsling opnås ved at gøre attributterne private, samtidig med at der oprettes offentlige metoder, som kan bruges til at få adgang til disse attributter. Arv giver brugeren mulighed for at udvide klasser (kaldet underklasser) fra andre klasser (kaldet superklasser). Polymorfisme giver programmereren mulighed for at erstatte et objekt af en klasse i stedet for et objekt af sin superklasse. Typisk er substantiverne, der findes i problemdefinitionen, direkte blevet klasser i programmet. Og tilsvarende bliver verb'er metoder. Nogle af de mest populære OOP-sprog er Java og C #.
Hvad er forskellen mellem AOP og OOP?
Nøgleforskellen mellem OOP og AOP er, at OOP's fokus er at nedbryde programmeringsopgaven i objekter, der indkapsler data og metoder, mens AOP's fokus er at nedbryde programmet i at krydse problemer. Faktisk er AOP ikke en konkurrent for OOP, fordi det opstod ud af OOP-paradigmet. AOP udvider OOP ved at adressere nogle af sine problemer. AOP introducerer pæne måder at gennemføre tværgående bekymringer på (som måske har været spredt over flere steder i den tilsvarende OOP implementering) på et enkelt sted. Derfor gør AOP programrenseren og mere løst koblet.