Dne 21.9.2011 15:49, Michal Eibl napsal(a):
Kniha je tu http://www.manning.com/laddad2/ zdrojaky jsou tam ke stazeni, tohle je konkretne z ch02\workspace\Section2.4.3LoadTimeWeavingOn 21.9.2011 15:04, Libor Jelinek wrote:Můžete to s těmi aspektovými frameworky a weak a phantonovými nápady rozvést? To se přiznám, že už je na mě příliš.... Ohledně referencí vím, že existují 4 typy referencí, ale aspektové programování slyším poprvé....
Pro pochopení principu mi přijde dobrá i kapitola o aspektovém programování z dokumentace Springu: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/aop.html Terminologie AOP mi přijde podivuhodně nestravitelná, dost dlouho mi trvalo, než jsem pochopil, že "cut across multiple types and objects" v podstatě znamená, že jsem schopen pomocí nového specifikačního jazyka nadefinovat, aby se před, po nebo místo volání zvolených metod volal můj kód. Pěkný příklad jsou databázové transakce, ve Springu je pomocí AOP nastaveno, že když se vstupuje do libovolné metody označené anotací @Transactional, tak se zahájí transakce (pokud už nebyla zahájena), a když se z té metody vystupuje, zase se transakce ukončí. A to lze specifikovat na jednom místě, místo rozesetí stejného kódu do spousty metod. Podobně bych mohl pomocí AOP říci, že se má třeba změřit doba trvání všech metod, jejichž jméno začíná na "a" a mají tři parametry. Nebo že má být zapsáno do logu volání libovolné metody určité třídy. Nebo že se má poslat email kdykoliv bude zavolána metoda, jejíž parametr je typu TopSecret. A tak podobně. Prostě v jednom aspektu popíšu nějak množinu metod (pointcut) a co se má stát a jestli se to má stát před, po nebo místo volání metody (advice). Makub -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CERIT-SC Martin Kuba Institute of Computer Science email: [email protected] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
