「アスペクト指向プログラミング」の版間の差分
削除された内容 追加された内容
編集の要約なし タグ: 差し戻し済み ビジュアルエディター |
オブジェクト指向プログラミングとは直交する(排他的ではなく、相補的な関係にある)という有用と思われる記述が削除されている/AOPのルーツはCLOSのmixinではない/MOPはプロトタイプ指向のルーツではない/ので記述を修正するため、手動で版を復帰(2020年12月27日 (日) 05:42)しました。 タグ: 手動差し戻し ビジュアルエディター: 中途切替 |
||
1行目:
'''アスペクト指向プログラミング'''(アスペクトしこうプログラミング、Aspect Oriented Programming、'''AOP''')は、[[オブジェクト指向]]ではうまく分離できない特徴(クラス間を横断 (cross-cutting) するような機能)を「[[アスペクト]]」とみなし、[[アスペクト記述言語]]をもちいて分離して記述することでプログラムに柔軟性をもたせようとする試みで、極端に言えば、あるプログラムFの本質とは無関係だが使うかもしれないプログラムGを、プログラムFを実行したときに割り込ませるような機能である。このプログラムGこそがアスペクトであり、これを別ファイルに分離し、処理系が[[ディスパッチ]]することで、プログラムF以外を実行するときにもプログラムGを割り込ませることができる。
アスペクトの例としては、データ転送帯域の制限や例外の処理などがある。[[Java]]にアスペクト指向的要素を追加した[[AspectJ]]が実験的に実装されている。
== 特徴 ==▼
* [[AspectC++]]
* [[AspectL]]
▲== 代表的なアスペクト指向言語 ==
* [[
▲* [[AspectJ|Aspect J]]
▲* [[AspectR|Aspect R]]
* Aspect L▼
* {{仮リンク|e (IEEE 1647)|en|E_(verification_language)}}
== 主なアスペクト指向
* [[Aspectcocoa]]
* [[AspectWerkz]]
* [[Spring Framework]]
* [[Seasar]]
* Joinpoint
* Advice
* Pointcut
== 脚注 ==
30 ⟶ 31行目:
== 関連項目 ==
* [[関心の分離]]
== 外部リンク ==
'''アスペクト指向が取り入れられている主なプロダクト'''
* [https://web.archive.org/web/20070430030838/http://www.csg.is.titech.ac.jp/projects/bugdel/ Bugdel] * [http://untrod.keihanna.ne.jp/whitedog/ WhiteDog System]{{リンク切れ|date=2018年3月 |bot=InternetArchiveBot }}
* [https://web.archive.org/web/20060321033931/http://www.komiya.ise.shibaura-it.ac.jp/~sakurai/aa/index_jp.html Association Aspects: 連想アスペクト]
* [http://mergedoc.sourceforge.jp/ MergeDoc Project] Pleiades:
* [http://msdn.microsoft.com/ja-jp/library/3ax346b7(VS.80).aspx ATL の概念]
{{Comp-stub}}
{{DEFAULTSORT:あすへくとしこうふろくらみんく}}
[[Category:アスペクト指向プログラミング|*]]
|