AOP without Aspectual Polymorphism

デザインパターンの実装の視点から見た AspectJ と Caesar の比較 - Abstract Factory
http://www.ncfreak.com/asato/doc/aspectj_caesar_dp/af.html

を書いていて思ったことだけど、Aspectual Polymorphism ができる Caesar とできない AspectJ では、かなり差があると思った。


差ってのは、Caesar と同じような結果を得るためには、AspectJ ではかなり複雑なコード(AspectJ 側のコード理解できますか? なぜ そのようなコードになっているのかの動機も読み取れますか?) 書かなければいけないってこと。


AspectJ が Caesar と比べて優れていると 僕は 感じるのは、Open Class (Inter-type なんちゃら or 古い用語でいえば Introduction) をサポートしている点(Caesar でも将来的には、採用するかもしれないって書いてたけど)。その具体的な理由とか根拠は言葉にできるほどじゃないけど、なんか違和感を感じる。

リソース:

  • M. Mezini and K.Ostermann. Conquering Aspects with Caesar. the 2nd International Conference on Aspect-Oriented Software Development
  • M. Haupt, C. Bockisch, M. Mezini, K. Ostermann. Towards Aspect-Aware Execution Models. Technical Report TUD-ST-2003-01.

http://www.st.informatik.tu-darmstadt.de/public/Publications.jsp