restofwaterimpのぎじゅつMemo

SIerに所属。企画から運用まで幅広くやってます。C#中心に書いてます。

【メモ】アスペクト指向とオブジェクト指向

達人プログラマーの新装版の言葉で余り知らない言葉を調べてまとめてます。。。

 

AOP(Aspect Oriented Programming)

 OOPでうまく分解できないソフトウェアの「様相」や「側面」といったものが存在し、

 このような「様相」「側面」は複数のオブジェクトにまたがる操作となる。

 これを「横断要素」という。

 例として、プログラムの実行の様子を記録すするロギング操作がある

 横断要素はコード中に散在し、すべてを把握し管理することが難しい。

 その為、こうした要素を「アスペクト」としてモジュール化し、分解することで、把握・管理・変更を容易にする。

 OOPを補完する。

 

https://yo1000.gitbooks.io/self-study-spring/content/chapter7.html

 

インたセプタを織り込むタイミングは2つ。

1.コンパイル

 独自に用意されたコンパイラを利用することで、コンパイルのタイミングでインたセプタを織り込む

  代表例・・・AspectJ(Javaの拡張言語)

2.クラス・ロード型

 特別な実行環境(コンテナ)を提供することで、実行(クラス・ロード)時にいんたセプタを織り込む

 

 

OOP(Object Oriented Programming)

 属性(データ)と操作(メソッド)の集合であるオブジェクトをソフトウェアの分解単位として扱う

 コードの再利用性、継承、多態性を利用し再利用可能なモジュールを作成する

 

 

http://e-words.jp/w/AOP.html

 

http://itpro.nikkeibp.co.jp/article/COLUMN/20051122/225023/