AOP 【Aspect Oriented Programming】 アスペクト指向プログラミング
概要
AOP(Aspect Oriented Programming)とは、コンピュータプログラムの特定の振る舞いを「アスペクト」と呼ばれる機能単位として分離して記述し、プログラム中の様々な対象に適用できるようにする手法。既存のオブジェクト指向プログラミング言語や開発環境に補助的に導入されることが多い。オブジェクト指向プログラミングでは、互いに関連するデータ(属性)とそれらに対する操作の集合であるオブジェクトをプログラムの基礎単位として記述していくが、ロギングのように様々なオブジェクトで共通して現れるが単一のオブジェクトやメソッドなどとして切り出して定義することができないような横断的な機能(横断的関心事)が存在する場合がある。
横断的な機能は様々なオブジェクト中に散在し、そのままでは一括して変更したり修正することはできないが、AOPではこれをアスペクト(aspect:様相、側面)として抜き出して統一的に記述し、個別の箇所に一括して適用することができるようにする。
アスペクトはアドバイス(advice)と呼ばれる処理内容の記述と、処理を適用するコード中の位置やタイミングを表すジョインポイント(join point)をセットで指定する。ジョインポイントにはメソッド呼び出し、例外発生など様々な種類があり、アドバイスをどのようなポイントに結合するのかをポイントカット(pointcut)と呼ばれる条件式などで指定する。
AOPは既存の言語に追加するフレームワークなどの形で提供され、JavaにAOPを追加するAspectJ、Spring Framework、JBoss AOPなどがよく知られている。
(2018.12.26更新)
関連用語
他の辞典による解説 (外部サイト)
この記事を参照している文書など (外部サイト)
- 立命館大学イノベーション・マネジメント研究センター「自動販売機メーカーのソフトウェアオフショア開発」(PDFファイル)にて引用 (2010年1月)