AOP vs OOP
AOP (Aspektorienteret programmering) og OOP (Objektorienteret programmering) er to programmeringsparadigmer. Et programmeringsparadigme er en grundlæggende stil med computerprogrammering. Programmeringsparadigmer adskiller sig i, hvordan hvert element i programmerne er repræsenteret, og hvordan hvert trin defineres til løsning af problemer. Som navnet antyder, fokuserer OOP på at repræsentere problemer ved anvendelse af virkelige objekter og deres opførsel, 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 i sammenhængende funktionalitetsområder (kaldet bekymringer), der skærer på tværs af flere områder for at øge modulariteten. Støtte til abstraktioner (såsom klasser, metoder osv.) Til gruppering og indkapsling af bekymringer til unikke enheder ydes i mange andre programmeringsparadigmer. Men bekymringer (såsom “Logging”) er eksempler på tværgående bekymringer, fordi hver logget del af systemet påvirkes af den strategi, der bruges til at logge. Hovedfokus for alle AOP-implementeringer er at have passende tværgående udtryk til at fange alle bekymringer på et enkelt sted.
Hvad er OOP?
I OOP er fokus på at tænke på det problem, der skal løses med hensyn til elementer i den virkelige verden, og at repræsentere problemet med hensyn til objekter og deres opførsel. Klasser skildrer de abstrakte repræsentationer af objekter i den virkelige verden. Klasser er som tegninger eller skabeloner, der samler lignende objekter eller ting, der kan grupperes sammen. Klasser har egenskaber kaldet attributter. Attributter implementeres som globale og forekomstvariabler. Metoder i klasserne repræsenterer eller definerer opførelsen af disse klasser. Metoder og attributter for klasser kaldes klassens medlemmer. Et eksempel på en klasse kaldes et objekt. Derfor er et objekt en datastruktur, der ligner et eller andet objekt i den virkelige verden.
Der er adskillige vigtige OOP-koncepter, såsom dataabstraktion, indkapsling, polymorfisme, meddelelser, modularitet og arv. Typisk opnås indkapsling ved at gøre attributterne private, mens der oprettes offentlige metoder, der 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 i en klasse i stedet for et objekt i dens superklasse. Typisk bliver substantiverne, der findes i problemdefinitionen, direkte klasser i programmet. Og på samme måde bliver verb til metoder. Nogle af de mest populære OOP-sprog er Java og C #.
Hvad er forskellen mellem AOP og OOP?
Den vigtigste forskel mellem OOP og AOP er, at OOP fokuserer på at nedbryde programmeringsopgaven til objekter, som indkapsler data og metoder, mens AOPs fokus er at nedbryde programmet for at krydse problemer. Faktisk er AOP ikke en konkurrent til OOP, fordi den kom ud af OOP-paradigmet. AOP udvider OOP ved at tackle få af sine problemer. AOP introducerer pæne måder at implementere tværgående problemer (som måske var spredt over flere steder i den tilsvarende OOP-implementering) på et enkelt sted. Derfor gør AOP programmet renere og mere løst koblet.