Η πρώτη μου «επαφή» με AOP ήταν σε ένα event της Microsoft (νομίζω φέτος) που είχε μιλήσει λίγο για το θέμα αυτό ο Clemens Vasters. Στην TechEd 2004, παρακολούθησα ένα session για AOP που ήταν ιδιαίτερα ενδιαφέρον, κυρίως διότι κατάλαβα μία σημαντική διαφορά: αυτή μεταξύ των Attribute Programming και AOP. Ναι, με attributes και λίγα μαγικά (με contexts) μπορείς να κάνεις pseudo-AOP, αλλά η πραγματική μαγεία του AOP είναι να μπορείς να ορίζεις τα aspects σε άλλο σημείο – έξω από τον κώδικά σου. Να μπορείς, για παράδειγμα, να πεις (με regular expressions γίνεται αυτό συνήθως) ότι για όλες οι set ρουτίνες ισχύει αυτό το aspect και για όλες τις ρουτίνες που ξεκινάνε από log* ισχύει το άλλο aspect, κλπ. Δεν ξέρω αν γίνομαι κατανοητός, αλλά βιάζομαι λίγο και δεν μπορώ να τα εξηγήσω με μεγαλύτερη λεπτομέρεια!
Περισσότερες πληροφορίες εδώ: http://www.coolcat.de/ (μόλις μετακόμισε το blog του, οπότε κοιτάξτε στο blog backup)
Επίσης, ρίξτε μια ματιά σε αυτό το άρθρο:
http://weblogs.java.net/blog/danmil/archive/2004/03/why_i_fear_aspe.html
Patrick