Impl アスペクト
最近忙しくってドキュメントを書くひまがない。ということでネタを忘れないようにメモっとく。詳しくはちゃんとしたドキュメントにまとめるけど・・・
AspectJ を使っていて、少なくとも3つのケースで Impl アスペクトみたいなインナーアスペクトを使いたい状況になることがある
- interface に Inter-type declarationsしたいとき。つまり、多重継承っぽくしたいとき。
- pertarget(or perthis) でアウター(外側)のアスペクトを宣言したとき。つまり、pertargetとかで宣言されたアスペクトは、その対象となるオブジェクトに関係しない advice は定義しても実行 されない ため。