マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

AOP

  • AOP: Aspect Oriented Programming
  • アスペクト指向プログラミング

AOPとは?

設計目的

  • オブジェクト指向ではうまく分離できない問題

    各メソッド内に別のメソッドを呼び出す「処理の共通的パターン」がある場合、
    オブジェクト指向ではこれを共通化できず、処理が散在してしまう。

を「アスペクト」と呼び、

  • アスペクト記述言語(若しくはこれを実現するための各種技術)を用いて、
    「アスペクト」を別のメソッド(モジュール)に分離して記述することで、
    プログラムに柔軟性を持たせようとする試み。

※ この問題はIoCでも解決できるが、AOPではコードの外での解決を実現する。
アスペクト記述言語によるウィービングでコードと分離して記述する。

ユースケース

アスペクトの代表的な利用例としては「ロギング処理」がある。

  • ロギング処理
    ロギング処理(アスペクトの代表的な利用例)
  • ロギング処理のアスペクト
    以下は、AOPを使用してロギング処理の「アスペクト」を
    別のモジュール(or 定義)に分離して実装した例である。
AOPでのロギング処理の実装例

実際にコードが実行される際には、ルールに従って指定されたパターン の
「アスペクト」が織り込まれる(これをアスペクトのウィービングと呼ぶ)。

詳細

技術

AOPを実現する技術(方式)には下記のものがある。

開発基盤

代表的なAOP開発基盤(古いかも)

言語個別

フレームワーク個別

その他

ウィービング

ウィービングの指定方法には、

  • 定義ファイル
  • アノテーション(メソッド / クラス属性)
  • クラスのメソッド構成

などがある。

前述の説明に合わせると、透過プロキシを使用したAOPでは、

  • アスペクトを透過プロキシ(後述)上に実装する。
  • ウィービングされるアスペクトは、使用する透過プロキシにより決定される。

となる。

関連

IoC

DI

.NETにおいてAOPを実現する透過プロキシ

参考


Tags: :プログラミング, :.NET開発


添付ファイル: fileExampleOfAOP.png 28件 [詳細] fileAOP-Logging.png 26件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-02 (木) 16:03:37 (111d)