P8: Aspektovo-orientované programovanie (desktop)

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 uvádza aspektovo-orientované programovanie ako rozšírenie objektovo orientovaného prístupu, ktoré umožňuje zmeniť správanie kódu bez priameho zásahu do príslušných tried a metód. Na jednoduchej triede bodu s celočíselnými súradnicami a metódami setX, getX, setY, getY ukazuje, že ručné pridávanie kontrolných výpisov do kódu je únavné, náchylné na vynechanie a narúša zámer metódy, teda aj princíp jednej zodpovednosti. Riešením je externá špecifikácia zásahu, ktorú zapracuje špeciálny kompilátor jazyka AspectJ pred alebo po volaní vybraných metód, pričom rozsah možno obmedziť na konkrétnu metódu, triedu či balík. Nový prvok sa nazýva aspekt, ktorý slúži ako obal pre konštrukcie advice. Na začiatku lektor tiež avizuje anotácie v Jave a Javadoc pre finálnu dokumentáciu projektu.

  • - Aspektovo-orientované programovanie mení správanie kódu bez úpravy samotných tried a metód.
  • - Ručné pridávanie výpisov na desiatky miest je náročné, chybové a zahmlieva zámer kódu.
  • - Zásah do kódu porušuje princíp jednej zodpovednosti (single responsibility principle).
  • - AspectJ je špeciálny kompilátor, ktorý vloží špecifikovaný kód na správne miesta počas prekladu.
  • - Zásah možno definovať pred (before) alebo po (after) volaní metódy a obmedziť ho na určitú metódu, triedu či balík.
  • - Aspekt je obal pre konštrukcie advice, ktoré určujú, čo sa má vykonať.
  • - Použitie: logovanie, sledovanie priebehu programu a rýchle zásahy do cudzieho kódu.

Zhrnutie pripravené s pomocou AI z prepisu videa.