アスペクト指向とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > アスペクト指向の意味・解説 

アスペクト指向プログラミング

(アスペクト指向 から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/01/11 05:10 UTC 版)

アスペクト指向プログラミング(Aspect Oriented Programming、AOP)は、横断的関心英語版を実装する手法によって、プログラムのモジュール性を高めることを目的にしたプログラミングパラダイムである。横断的関心とは、関心の分離によるモジュールの複数以上にまたがっている共通機能を意味している。AOPはこの横断的関心を、既存コードに設けた間接点(joint point)を通しての振る舞い助言(advice)の追加によって、コード変更を伴なわずに実装できるようにしている。任意の間接点および振る舞い助言の定義をまとめたモジュールがアスペクト英語版と呼ばれ、これが横断的関心の表現体になる。例としては、全ての関数呼出しにログ出力を伴わせたい時に、全関数冒頭にjoint pointを設けてログ出力コードをadviceにしたアスペクトをプログラム内に定義することで、自動的に各関数呼出しとログ出力が同時実行されるようになる。

アスペクト指向は本来、命令型プログラミングの一角を占めるパラダイムであり、オブジェクト指向とは異なる視点で命令型を発展させたサブジェクト指向英語版の一種でもある。状態の遷移がプロセスに影響を与える命令型の特性(プログラム副作用)に加えて、サブジェクト指向はプロセスもsubjectに基づいた遷移対象にしている。オブジェクト指向は、状態とプロセスの抽象化を追求したパラダイムなので、プロセスの具象/抽象を問わずにaspectに基づいた遷移対象にできるアスペクト指向と直交している。

しかし現状のアスペクト指向は、オブジェクト指向のコードをサポートする役割に留まっていることが多く、独立したパラダイムとして扱われることは稀である。OOP言語JavaにAOPを追加した「AspectJ」がその代表例である。純粋OOP言語Ruby[1]もAOP由来の機能を補完的に取り入れている[2]

主なアスペクト指向言語

主なアスペクト指向フレームワーク

主なアスペクト指向準拠のプロダクト

脚注

  1. ^ まつもと直伝 プログラミングのオキテ 第0回 あらためてRuby入門(基本と他言語との違い)”. 日経クロステック. 2020年12月18日閲覧。
  2. ^ Module#prependによってCLOS(Common Lisp Object System)のaround hookと同じように,あるメソッドの前後をフックして処理を行えるようになりました。これは以前注目されていた「アスペクト指向プログラミング」に近い振る舞いになります。https://gihyo.jp/news/report/01/rubykaigi2017/0002

関連項目




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「アスペクト指向」の関連用語

アスペクト指向のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



アスペクト指向のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのアスペクト指向プログラミング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS