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