AOP の有効性と AOP が解決する問題

タイトルがめずらしく日本語だけど、これは、英語での書き方がわからんかったからだ! ・・・とはかはさておき・・・


AOP が有効である、といわれるようなケースの問題を扱っているとき、その問題は、どのような問題なのかどうか。一般的に、AOP が解決するには、crosscutting concerns の取り扱いだと思うけど、だとしたら、AOP がある問題を解決したとしたら、その問題は、crosscutting concerns に分類されるようなものなのだろうか。


また、ある AOP 言語のある言語特徴との関係はどうだろうか。たとえば、AspecJ では inter-type declarations の特徴をもっているけど、Caesar では、そのような言語特徴はない。もし、inter-type declarations を使って(オブジェクト指向ではうまく取り扱えなかった)特定の問題をうまく解決できたとして、もし、Caesar では、うまくとりあつかえなかったとしたら、これは、どう解釈すればいいのだろうか。


まとめると:

  • AOP のテクニックが解決する問題は、すべて crosscutting concerns に含まれるのか?
  • crosscutting concerns には、どのような種類ものがあるのか?
  • crosscutting concerns かどうかの見分け方はあるのか?
  • AOP 言語の特定の特徴は、どのように問題解決に違いをもたらすのか?