Forskjell mellom AOP og OOP
AOP vs OOP
AOP (Aspect-orientert programmering) og OOP (Objektorientert programmering) er to programmeringsparadigmer. Et programmeringsparadigm er en grunnleggende stil for dataprogrammering. Programmeringsparadigmer er forskjellige i hvordan hvert element av programmene er representert og hvordan hvert trinn er definert for å løse problemer. Som navnet antyder, fokuserer OOP på å representere problemer ved bruk av virkelige objekter og deres oppførsel, mens AOP omhandler å bryte ned programmene inn for å skille crosscutting bekymringer.
Hva er AOP?
AOP er et programmeringsparadigm som omhandler å bryte ned et program i sammenhengende områder av funksjonalitet (kalt bekymringer) som kutter over flere områder for å øke modulariteten. Støtte for abstraksjoner (som klasser, metoder, etc.) for å gruppere og inkapslere bekymringer i unike enheter, er gitt i mange andre programmeringsparadigmer. Men bekymringer (for eksempel "Logging") er eksempler på kryssende bekymringer, fordi hver logget del av systemet påvirkes av strategien som brukes til logging. Hovedfokuset på alle AOP-implementeringer er å ha egnede kryssende uttrykk for å fange alle bekymringer på et enkelt sted.
Hva er OOP?
I OOP fokuserer det på å tenke på problemet som skal løses i forhold til virkelige elementer, og representerer problemet når det gjelder objekter og deres oppførsel. Klasser skildrer de abstrakte representasjonene av virkelige verdensobjekter. Klasser er som tegninger eller maler, som samler lignende elementer eller ting som kan grupperes sammen. Klasser har egenskaper som kalles attributter. Attributter implementeres som globale og instansvariabler. Metoder i klassene representerer eller definerer oppførselen til disse klassene. Metoder og attributter til klasser kalles medlemmer av klassen. En forekomst av en klasse kalles et objekt. Derfor er et objekt en datastruktur som ligner på noe virkelig objekt.
Det finnes flere viktige OOP-konsepter som dataabstraksjon, innkapsling, polymorfisme, meldinger, modularitet og arv. Typisk innkapsling oppnås ved å gjøre attributtene private, mens du lager offentlige metoder som kan brukes til å få tilgang til disse attributter. Arv gir brukeren muligheten til å forlenge klasser (kalt underklasser) fra andre klasser (kalt superklasser). Polymorfisme tillater programmereren å erstatte et objekt av en klasse i stedet for et objekt av sin superklasse. Vanligvis blir substantivene som finnes i problemdefinisjonen direkte klasser i programmet. Og på samme måte blir verker metoder. Noen av de mest populære OOP-språkene er Java og C #.
Hva er forskjellen mellom AOP og OOP?
Hovedforskjellen mellom OOP og AOP er at OOP fokuserer på å bryte ned programmeringsoppgaven i objekter som inkapsler data og metoder, mens AOP fokuserer på å bryte ned programmet i å krysse bekymringer. Faktisk er AOP ikke en konkurrent for OOP, fordi det kom ut av OOP-paradigmet. AOP utvider OOP ved å ta opp noen av sine problemer. AOP introduserer ryddige måter å implementere crosscutting bekymringer (som kanskje har blitt spredt over flere steder i den tilsvarende OOP implementering) på ett sted. Derfor gjør AOP programmet renere og mer løst koblet.