AOP versus OOP
AOP (Aspect-oriented programming) en OOP (Object-oriented programming) zijn twee programmeerparadigma's. Een programmeerparadigma is een fundamentele stijl van computerprogrammering. Programmeringsparadigma's verschillen in hoe elk element van de programma's wordt weergegeven en hoe elke stap is gedefinieerd voor het oplossen van problemen. Zoals de naam al doet vermoeden, concentreert OOP zich op het weergeven van problemen met het gebruik van objecten uit de echte wereld en hun gedrag, terwijl AOP zich bezighoudt met het opsplitsen van de programma's in afzonderlijke crosscutting-problemen..
Wat is AOP?
AOP is een programmeerparadigma, dat zich bezighoudt met het opsplitsen van een programma in samenhangende gebieden van functionaliteit (genaamd concerns) die dwars door meerdere gebieden gaan, om de modulariteit te vergroten. Ondersteuning voor abstracties (zoals klassen, methoden, etc.) om zorgen te groeperen en in te sluiten in unieke entiteiten wordt geboden in vele andere programmeerparadigma's. Maar bezorgdheid (zoals 'Logging') zijn voorbeelden van zorgen over crosscutting, omdat elk gelogd gedeelte van het systeem wordt beïnvloed door de strategie die wordt gebruikt voor logboekregistratie. Het belangrijkste doel van alle AOP-implementaties is om geschikte crosscutting-expressies te hebben om alle problemen op één locatie vast te leggen.
Wat is OOP?
In OOP ligt de focus op het nadenken over het probleem dat opgelost moet worden in termen van real-world elementen, en het probleem representeren in termen van objecten en hun gedrag. Klassen geven de abstracte representaties weer van objecten uit de echte wereld. Klassen zijn als blauwdrukken of sjablonen, die vergelijkbare items of dingen verzamelen die kunnen worden gegroepeerd. Klassen hebben eigenschappen die attributen worden genoemd. Attributen worden geïmplementeerd als globale en instantievariabelen. Methoden in de klassen vertegenwoordigen of definiëren het gedrag van deze klassen. Methoden en kenmerken van klassen worden de leden van de klas genoemd. Een exemplaar van een klasse wordt een object genoemd. Daarom is een object een gegevensstructuur die sterk lijkt op een object uit de echte wereld.
Er zijn verschillende belangrijke OOP-concepten zoals Data abstractie, Encapsulation, Polymorphism, Messaging, Modularity and Inheritance. Doorgaans wordt encapsulatie bereikt door de attributen privé te maken, terwijl openbare methoden worden gecreëerd die kunnen worden gebruikt voor toegang tot die attributen. Met overerving kan de gebruiker klassen (subklassen genoemd) uitbreiden met andere klassen (superklassen genoemd). Polymorfisme stelt de programmeur in staat om een object van een klasse te vervangen in plaats van een object uit zijn superklasse. Doorgaans worden de zelfstandige naamwoorden die in de probleemdefinitie worden gevonden, direct klassen in het programma. En op dezelfde manier worden werkwoorden methoden. Enkele van de meest populaire OOP-talen zijn Java en C #.
Wat is het verschil tussen AOP en OOP?
Het belangrijkste verschil tussen OOP en AOP is dat de focus van OOP ligt op het opsplitsen van de programmeertaak in objecten, die gegevens en methoden inkapselen, terwijl de focus van AOP ligt op het afsnijden van het programma in het overbruggen van zorgen. In feite is AOP geen concurrent voor OOP, omdat het uit het OOP-paradigma is voortgekomen. AOP breidt OOP uit door enkele van zijn problemen aan te pakken. AOP introduceert nette manieren om crosscutting-problemen (die mogelijk verspreid zijn over verschillende plaatsen in de overeenkomstige OOP-implementatie) op één plaats te implementeren. Daarom maakt AOP het programma schoner en losser gekoppeld.