Aspect Oritented Programming("AOP")とは? AOP(Aspect Oritented Programming, アスペクト指向プログラミング)は、OOP(Object Oriented Programming, オブジェクト指向プログラミング)で表現されたクラスを横断("cross-cutting")する特性を表現するために考案されました。 たとえば、ロギングのようなメソッド呼び出しのトラッキングはプログラム全体で共通した特性ですが、クラスとして表現された特性とは、軸の異なる特性です。 OOPのみに頼る場合、Templateパターン、Proxyパターンなどのデザインパターンを使って体系だったロギングを行ったりします。また、処理の要所でロギングコードを直接記述したりもします。 これらは、本来的にはクラスに実装されるべき処理とは無関係であることは明白でしょう。