アスペクト指向プログラミング

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動

アスペクト指向プログラミング(アスペクトしこうプログラミング、Aspect Oriented Programming、AOP)は、オブジェクト指向ではうまく分離できない特徴(クラス間を横断 (cross-cutting) するような機能)を「アスペクト」とみなし、アスペクト記述言語をもちいて分離して記述することでプログラムに柔軟性をもたせようとする試みで、極端に言えば、あるプログラムFの本質とは無関係だが使うかもしれないプログラムGを、プログラムFを実行したときに割り込ませるような機能である。このプログラムGこそがアスペクトであり、これを別ファイルに分離し、処理系がディスパッチすることで、プログラムF以外を実行するときにもプログラムGを割り込ませることができる。

アスペクトの例としては、データ転送帯域の制限や例外の処理などがある。Javaにアスペクト指向的要素を追加したAspectJが実験的に実装されている。

オブジェクト指向プログラミングとは直交するプログラミングパラダイムである。

既存のプログラミングパラダイムを置き換えるものではなく、あくまで既存の言語の補助機能として利用されることを目的としている。

主なアスペクト指向言語[編集]

主なアスペクト指向フレームワーク[編集]

用語[編集]

  • Aspect
  • Joinpoint
  • Advice
  • Pointcut

関連項目[編集]

外部リンク[編集]

アスペクト指向が取り入れられている主なプロダクト