aspectJ 实现design pattern

看了以前的讨论,有些地方还是不太懂。
这个链接用aspectJ实现了23种pattern。那个observer的实现我怎么看着那么不顺眼,但又说不出怎样实现更好一些。请大虾指点一二!
http://www.cs.ubc.ca/~jan/AODPs/gof

还有你们说的用delegate实现,能否简要接受一下delegate的概念?谢谢!

文中对每个模式用了一个abstract aspect来实现模式的功能。我仔细看了一下observer的实现,模式从本来的程序中独立出来为ObserverProtocol, 也实现了一定程度上的重用,但是整个模式的实现变得很不清晰:原来分的很清楚的subject和observer现在混杂在一起,单独看每个observer instance(concrete aspect)很难把握整个程序的结构。不知道大家怎么看?有没有更好的实现方法?