「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
AOP †
- AOP: Aspect Oriented Programming
- アスペクト指向プログラミング
AOPとは? †
設計目的 †
- オブジェクト指向ではうまく分離できない問題
各メソッド内に別のメソッドを呼び出す「処理の共通的パターン」がある場合、
オブジェクト指向ではこれを共通化できず、処理が散在してしまう。
を「アスペクト」と呼び、
- アスペクト記述言語(若しくはこれを実現するための各種技術)を用いて、
「アスペクト」を別のメソッド(モジュール)に分離して記述することで、
プログラムに柔軟性を持たせようとする試み。
※ この問題はIoCでも解決できるが、AOPではコードの外での解決を実現する。
アスペクト記述言語によるウィービングでコードと分離して記述する。
ユースケース †
アスペクトの代表的な利用例としては「ロギング処理」がある。
- ロギング処理のアスペクト
以下は、AOPを使用してロギング処理の「アスペクト」を
別のモジュール(or 定義)に分離して実装した例である。
実際にコードが実行される際には、ルールに従って指定されたパターン の
「アスペクト」が織り込まれる(これをアスペクトのウィービングと呼ぶ)。
詳細 †
技術 †
AOPを実現する技術(方式)には下記のものがある。
開発基盤 †
代表的なAOP開発基盤(古いかも)
言語個別 †
フレームワーク個別 †
その他 †
ウィービング †
ウィービングの指定方法には、
- 定義ファイル
- アノテーション(メソッド / クラス属性)
- クラスのメソッド構成
などがある。
前述の説明に合わせると、透過プロキシを使用したAOPでは、
- アスペクトを透過プロキシ(後述)上に実装する。
- ウィービングされるアスペクトは、使用する透過プロキシにより決定される。
となる。
関連 †
参考 †
Tags: :プログラミング, :.NET開発