アスペクト指向とは、プログラミングパラダイムの一つである。
概要
アスペクト指向では、従来の技術では扱うことができなかった横断的関心事を、モジュール化することができる。
手続きやクラスなど、従来のプログラミング言語のパラダイムは、関連するコードを一つのモジュールにまとめることで、抽象化を行ってきた。
しかし従来の技術では、それらのモジュールを横断する関心事をモジュールとしてまとめることができなかった。
ロギング:アスペクト指向のキラーアプリケーション
このような横断的関心事の有名な例は、ロギングである。
例えば、適当な手続きの呼び出しをログに書き出そうとした場合、を考える。
手続き型言語や、オブジェクト指向言語では、ログを取るコードがログを取りたいさまざまな場所に存在してしまう。
なぜなら、ログを取りたい場所にログを取るコードを書くしかないからである。
アスペクト指向言語では、モジュールが自分自身が呼ばれたい場所を自分で指定できるようにすることで、この問題を解決する。
ロギングの例では、ログを取るモジュールが、ログを取りたい場所を自分で指定するのである。
ジョインポイントモデル
アスペクト指向言語の多くの実装では、ジョインポイント、ポイントカット、アドバイスという概念を用いて、横断的関心事をモジュール化する。
ジョインポイントとは、プログラム実行中のある点である。
ポイントカットとは、ジョインポイントの集合から部分集合を決める方法である。ロギングの例では、ポイントカットによってログを取りたい場所を決めるわけである。
アドバイスとは、ポイントカットによって選ばれたジョインポイントで、何をするかを決めるコードである。ロギングの例では、ログを取るコードを記述する。
関連商品
関連項目
- 3
- 0pt