AspectJ Title Logo

[ Topページへ戻る ]

2002.4.8よりアクセス

アスペクト指向プログラミング(AOP:Aspect Oriented Programming)をJavaに導入するAspectJについてのページです。オブジェクト指向の観点で整理されているパッケージ〜クラス階層のあちらこちらに同じようなコードを書く場合、アスペクトという観点でモジュール化(局所化)すると便利です。


AspectJ News


アスペクト指向の超簡略概念

まずは次の図をご覧下さい。

何のことやらって感じですが、オブジェクト指向によって既に構築されているクラスの随所にある共通の機能(例えばログ出力)を追加したいとします。今までなら、随所に似たようなコードを書いてげっそりとする所です。アスペクト指向では、このように随所に同じ機能を追加する場合、この「同じ機能」をアスペクトとして1回だけ記述し、あとは追加する随所がどこかを指定します。これをweaver(織りこむ)と呼びます。

アスペクト指向プログラミングは、オブジェクト指向プログラミングと対立する概念ではありません。オブジェクト指向では、プログラミングするテーマの知識(アプリケーションドメイン)にそってクラス階層を構築します。でも、アプリケーションドメインには属さない概念もたくさんあります。ロギングもそうですし、アサーションもそうですね。エラー処理も含まれます。「すべてのpublicメソッドの入り口と出口では必ずロギングすること」なんて規約があったとしたら、けっこうげっそりします。そんなときに、アスペクト指向はいかがでしょうか。


本コーナーのコンテンツ


参考文献

日本語で読めるとこ

英語になっちゃうけど

AspectJのライバル達


This page is written by Toru TAKAHASHI.(torutk@02.246.ne.jp)