ウィリアムのいたずらの、まちあるき、たべあるきーPART2

gooブログ「ウィリアムのいたずらの、まちあるき、たべあるき」がお引越ししてきました

アスペクト指向の愉快な利用方法とか


アスペクト指向のこの前のつづき




■ポイントカットの応用(この前の続き)
・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/