アスペクト指向のこの前のつづき
■ポイントカットの応用(この前の続き)
・within ~ call--
~から呼び出される--
・フィールドにアクセスされたときに、ポイントカット
get
set
■アスペクト指向の愉快な利用方法:
・モックとして使う
aroundアドバイスは、そのまま帰ってくるので、ダミーモジュールに使うところを、
aroundアドバイスに変えてしまえば、本体に対して修正などしないで、
aroundアドバイスを作るだけで、テストができる。
・静的な解析declare errorで、ポイントカットを使って、コンパイルエラーを出す
■さらにすごいこと:存在しないメソッドを後から追加できる
インタータイプ宣言:修正せずにメソッド、コンストラクタ、フィールドを追加できる
declare句による宣言:修正せずに継承関係を変更できる
→ただし、変更した結果、実装すべきメソッドがない等の矛盾が生じてはいけない
→実行順番を指定したい場合は、優先順位の指定をする
→declear precedence
特権アスペクト:privileged:privateでも勝手に見えてしまう。
■アノテーションとしても書ける
また、アノテーションをポイントカットにできる。
■アスペクトの問題点
・テストはどうなるの?
・アスペクト指向の設計方法は?
→表記、手順は?
■他の言語のアスペクト指向
・aspectC http://research.msrg.utoronto.ca/ACC
・aspectC++ http://www.aspectc.org/