L6: Component and Composite Approach to Aspect-Oriented Programming

Zdroj
ručne priradené
Pridané

Pozrieť na YouTube →

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.

Otvoriť AI: ChatGPT · Claude · Gemini

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.