AspectJとかは動的にメソッドに機能追加できたり、あるクラスにフィールドを追加できたり
継承関係を変化させたりすることができるから
注意して使わないとわけわからんプログラムが出来上がる。
(アスペクトがカプセル化を破壊するとよくいわれる)

本コードの論理構造を損なわずに機能を追加できる例が、ロギングくらいしか
ないから、それが例に良く用いられる。

「指向」なんて大げさに考えずに便利だから使う程度の考えでよいとおもわれ