アスペクト指向プログラミングとは? わかりやすく解説

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

関連項目


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

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

オブジェクト指向分析設計」の記事における「アスペクト指向プログラミング」の解説

アスペクト指向プログラミング (AOP; aspect-oriented programming) では、プログラム (システム) のすべての主だった機能は、アスペクトであると考える。アスペクトには、中心的な関心事 (ビジネスロジック) と横断的関心事 (付加的な機能) とがある。分割しておいた中心的な関心事付加的な関心事いっしょに編み合わせる (weaving) ことにより、分割しておいたアスペクトを基にして、プログラム全体生成することができる。

※この「アスペクト指向プログラミング」の解説は、「オブジェクト指向分析設計」の解説の一部です。
「アスペクト指向プログラミング」を含む「オブジェクト指向分析設計」の記事については、「オブジェクト指向分析設計」の概要を参照ください。

ウィキペディア小見出し辞書の「アスペクト指向プログラミング」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



アスペクト指向プログラミングと同じ種類の言葉


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

辞書ショートカット

すべての辞書の索引

「アスペクト指向プログラミング」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS