アスペクト指向プログラミング (
AOP: Aspect Oriented Programming)は、
オブジェクト指向ではうまく分離できない特徴(
クラス間を横断 (cross-cutting) するような機能)を「アスペクト」とみなし、アスペクト記述言語をもちいて分離して記述することでプログラムに柔軟性をもたせようとする試み。アスペクトの例としては、データ転送帯域の制限や例外の処理などがある。Java にアスペクト指向的要素を追加したAspectJ が実験的に
実装されている。
オブジェクト指向とは直交する概念である。