Aspektorienteret programmering

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 4. maj 2020; checks kræver 3 redigeringer .

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).

Begrundelse

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.

Grundlæggende begreber

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:

Noter

  1. Myter og realiteter om AOP . IBM. Dato for adgang: 27. oktober 2010. Arkiveret fra originalen 5. februar 2012.

Links

Litteratur