L6: Component and Composite Approach to Aspect-Oriented Programming
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška sa venuje komponentovému a kompozičnému prístupu k aspektovo orientovanému programovaniu. Najprv pripomína, že myšlienka aspektovej orientácie je širšia než jazyk AspectJ, ktorého korene siahajú k metaprogramovaniu, reflexii, meta-object protokolu a Lispu. Potom vymedzuje komponent ako jednotku modularizácie väčšiu než trieda, pričom najvýznamnejšie komponenty sú frameworky. V aspektovo orientovanom prístupe sa komponenty nespájajú len konektormi, ale kompozíciou čiastočne definovaných tried alebo prierezovým ovplyvňovaním bodov spájania cez pointcuty a advice. Na príklade abstraktného aspektu s rolami (rozhranie OperationClass), nedefinovaným pointcutom a advice sa ukazuje, ako konkrétny aspekt priraďuje roly triedam a ako ich možno vynútiť alebo doplniť injektážou. Na záver sa nastoľuje otázka, či by sa to dalo vyriešiť lepšie vlastným jazykom, a spomína sa výskumný prototyp staršieho jazyka.
- - Aspektová orientácia je širšia myšlienka než jej implementácia v AspectJ.
- - Korene AspectJ: metaprogramovanie, reflexia, meta-object protokol, Lisp a Smalltalk.
- - Komponent je jednotka modularizácie presahujúca jednu triedu; samotné triedy sú na opätovné použitie príliš malé.
- - Najvýznamnejšie komponenty sú frameworky, ktoré sa skladajú doplnením chýbajúcich častí.
- - V asymetrickom AOP je kompozičným mechanizmom ovplyvňovanie bodov spájania cez pointcuty a advice.
- - Abstraktný aspekt definuje roly cez rozhranie (OperationClass) a konkrétny aspekt ich priraďuje triedam, napr. Alarm.
- - V UML modelovaní sú pointcuty nezávislé od konkrétnych bodov spájania, čo AspectJ dovoľuje len obmedzene.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky