2009年11月22日日曜日

AspectJ

AspectJとは、プログラミング言語のJavaでアスペクト指向プログラミング(AOP:Aspect Oriented Programming)を可能にする拡張仕様、およびそれを実装するための開発ツール。コンパイラやライブラリ、各種開発環境へ組み込むためのツール群などから構成され、オープンソースソフトウェアとして公開されている。AspectJで記述したプログラムをコンパイルした実行ファイルは通常のJava言語で開発したものと変わらず、一般的なJavaプログラムの動作環境(Java VM)で動作させることができる。

 従来のオブジェクト指向プログラミング(OOP:Object Oriented Programming)では、データと対応する処理(メソッド)をモジュール化の単位として扱うが、うまくモジュール化が行なえない場合があった。この問題を解決するために、アスペクト指向プログラミングでは、オブジェクトにうまく分割できないソフトウェアの性質・側面(アスペクト)をモジュールにまとめて取り扱えるようにする。

 AspectJはJava言語の記法を拡張してアスペクト指向的な記述が行なえるようになっており、それ以外の部分は通常のJava言語と同じようにプログラミングする。アスペクトを取りまとめたものは、通常のクラスに似た形で、「アスペクト」(aspect)としてモジュール化して記述し、アスペクトをどこに組み込むかを記述する。たとえば、あるメソッドの前後で特定のメッセージを出力したい場合には、特定のメッセージを出力するアスペクトを、あるメソッドの前後に組み込むことを宣言しておく。こうすることにより、既存のコードに一切手を加えることなく、デバッグ用の出力やロギングなどが行なえる。

0 件のコメント:

コメントを投稿