Aspect-Oriented Programming (AOP) er et programmeringsparadigme baseret på ideen om adskillelse af funktionalitet for at forbedre programopdelingen i moduler .
AOP - metoden blev foreslået af en gruppe ingeniører ved Xerox PARC Research Center ledet af Gregor Kiczales. De udviklede også en aspekt-orienteret udvidelse til Java-sproget , kaldet AspectJ - (2001).
Eksisterende programmeringsparadigmer - proceduremæssig , modulær , objektorienteret programmering (OOP) og domæneorienteret design - giver visse måder at adskille og fremhæve funktionalitet: funktioner , moduler , klasser , men nogle funktioner, der bruger de foreslåede metoder, kan ikke adskilles i separate enheder. En sådan funktionalitet kaldes end-to- end (fra engelsk scattered - scattered eller engelsk tangled - intertwined), da implementeringen er fordelt på forskellige programmoduler. End-to-end funktionalitet fører til spredt og forvirrende kode, som er svær at forstå og vedligeholde.
Logning og undtagelseshåndtering er typiske eksempler på tværgående funktionalitet. Andre eksempler: sporing ; autentificering og verifikation af adgangsrettigheder ; kontraktprogrammering (især kontrol af forud- og efterbetingelser). For et program skrevet i OOP-paradigmet er enhver funktionalitet, der ikke er blevet dekomponeret , pass-through.
Men ifølge nogle forfattere [1] kan AOP også med succes bruges til at løse problemer med sikkerhed, multithreading , transaktionsstyring og mange andre.
Alle AOP-sprog giver et middel til at isolere end-to-end-funktionalitet til en separat enhed. Da AspectJ er forfaderen til denne retning, har begreberne brugt i denne udvidelse spredt sig til de fleste AOP-sprog.
Grundlæggende begreber for AOP:
Softwareudvikling | |
---|---|
Behandle | |
Koncepter på højt niveau | |
Vejbeskrivelse |
|
Udviklingsmetoder _ | |
Modeller | |
Bemærkelsesværdige tal |
|