Aspektově orientované programování

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 4. května 2020; kontroly vyžadují 3 úpravy .

Aspect-Oriented Programming (AOP)  je programovací paradigma založené na myšlence oddělení funkcí pro zlepšení rozdělení programu do modulů .

Metodiku AOP navrhla skupina inženýrů z výzkumného centra Xerox PARC pod vedením Gregora Kiczalese. Vyvinuli také aspektově orientované rozšíření pro jazyk Java nazvané AspectJ  - (2001).

Odůvodnění

Stávající programovací paradigmata – procedurální , modulární , objektově orientované programování (OOP) a doménově orientovaný design  – poskytují určité způsoby oddělení a zvýraznění funkčnosti: funkce , moduly , třídy , ale některé funkce využívající navrhované metody nelze rozdělit do samostatných entit. Taková funkcionalita se nazývá end-to- end (z angličtiny  scattered  - rozptýlený nebo anglicky  tangled - intertwined), protože její implementace je distribuována mezi různé programové moduly. End-to-end funkčnost vede k rozptýlenému a matoucímu kódu, který je obtížné pochopit a udržovat.

Protokolování a zpracování výjimek  jsou typickými příklady průřezových funkcí. Další příklady: sledování ; ověřování a ověřování přístupových práv ; programování smluv (zejména kontrola předběžných a následných podmínek). U programu napsaného v paradigmatu OOP je jakákoliv funkčnost, která nebyla rozložena , průchozí.

Podle některých autorů [1] lze však AOP s úspěchem použít i pro řešení problémů bezpečnosti, multithreadingu , správy transakcí a mnoha dalších.

Základní pojmy

Všechny jazyky AOP poskytují prostředky k izolaci end-to-end funkčnosti do samostatné entity. Protože AspectJ je předchůdcem tohoto směru, koncepty použité v tomto rozšíření se rozšířily do většiny jazyků AOP.

Základní pojmy AOP:

Poznámky

  1. Mýty a realita AOP . IBM. Datum přístupu: 27. října 2010. Archivováno z originálu 5. února 2012.

Odkazy

Literatura