Aspect-Oriented Programming (AOP) är ett programmeringsparadigm baserat på idén om separering av funktionalitet för att förbättra programpartitionering i moduler .
AOP- metoden föreslogs av en grupp ingenjörer vid Xerox PARC Research Center under ledning av Gregor Kiczales. De utvecklade också en aspektorienterad tillägg för Java-språket , kallad AspectJ - (2001).
Befintliga programmeringsparadigm - procedurell , modulär , objektorienterad programmering (OOP) och domänorienterad design - tillhandahåller vissa sätt att separera och lyfta fram funktionalitet: funktioner , moduler , klasser , men viss funktionalitet som använder de föreslagna metoderna kan inte separeras i separata enheter. Sådan funktionalitet kallas ände-till- ände (från engelska scattered - scattered eller engelska tangled - intertwined), eftersom dess implementering är fördelad mellan olika programmoduler. End-to-end-funktionalitet leder till spridd och förvirrande kod som är svår att förstå och underhålla.
Loggning och undantagshantering är typiska exempel på tvärgående funktionalitet. Andra exempel: spårning ; autentisering och verifiering av åtkomsträttigheter ; avtalsprogrammering (särskilt kontroll av för- och eftervillkor). För ett program som är skrivet i OOP-paradigmet, är all funktionalitet som inte har sönderdelad pass-through.
Men enligt vissa författare [1] kan AOP också framgångsrikt användas för att lösa problem med säkerhet, multithreading , transaktionshantering och många andra.
Alla AOP-språk tillhandahåller ett sätt att isolera end-to-end-funktionalitet till en separat enhet. Eftersom AspectJ är förfadern till denna riktning, har begreppen som används i denna förlängning spridit sig till de flesta AOP-språk.
Grundläggande begrepp för AOP:
Mjukvaruutveckling | |
---|---|
Bearbeta | |
Koncept på hög nivå | |
Vägbeskrivning |
|
Utvecklingsmetoder _ | |
Modeller |
|
Anmärkningsvärda siffror |
|