2. fejezet, Aspektus orientált programozás
Ez a jegyzetfüzet tartalmazza az Aspektus orientált programozást, ám nem etalon a módszert alkalmazók számára. Egyszerű jegyzetfüzet, amit bárki használhat, akit érdekel a programozási paradigmák közül az Aspektus orientált programozás.
Objektumok, események jellegzetes állapotait (cross-cut), és az arra reagáló programrészt aspektusoknak nevezzük. Az objektum állapotok és az események speciális körülmények között, jellegzetes állapotokban módosíthatják a program futását. Ilyen jellegzetes aspektus a naplózás, ami erőforrás igényes, és hibátlan működés közben egy része fölösleges, mivel a program lassulásával is jár. Az AspectJ és a Java 5-el bevezetett instrumentálás (bájt kód módosítás) említhető meg, mint az AOP megvalósítása Java nyelven. Az AspectJ fordítási időben alakítja a végeredményül kívánt formára az osztályt, az instrumentálás pedig betöltődés közben dolgozik a már lefordított bájt kódon.
Lássuk mit is jelentenek ezek a átfedési pontok egy Morgan Deters szerkesztette útmutató szerint:
- kapcsolódási pontok (join points): egy jól meghatározott helye a programnak
Lehet ez egy metódus híváson belül, vagy egy osztály konstruktorában - metszéspont (pointcut): kapcsolódási pontok halmaza
Minden metódus A osztályban, ami hívja a B osztály metódusait
Minden mező változása A osztály leszármazottaiban - értesítés (advice): automatikusan lefutó kódrész, ami minden kapcsolódási pontnál lefut bizonyos metszéspontok esetén.
Megadható előtte (before), utána (after) és helyette (around, in place of) futási lehetőség a metszéspont kapcsolódási pontjainál. - Lexikális bevezetés (Lexical introdution): leszármaztatás és ez általi bővítés nélkül funkcionalitás hozzáadása egy osztályhoz.
Például legyen létrehozható A osztály klónozással (implementálja a Cloneable interfészt)
- A hozzászóláshoz be kell jelentkezni