method2が明示的に呼び出されていないmethod1があるとします。最初のメソッドの呼び出し時に2番目のメソッドへの呼び出しをトリガーする
メソッド1を呼び出す方法をプログラミング言語でサポートしていますが、最初のメソッドに変更を加えずに呼び出された場合はどうなりますか?もしそうなら、簡単な例を挙げてください。
method2が明示的に呼び出されていないmethod1があるとします。最初のメソッドの呼び出し時に2番目のメソッドへの呼び出しをトリガーする
メソッド1を呼び出す方法をプログラミング言語でサポートしていますが、最初のメソッドに変更を加えずに呼び出された場合はどうなりますか?もしそうなら、簡単な例を挙げてください。
はい、AspectJ、1つです。それはこのようになります:method1
が呼び出され
after(): call(void method1()) {
method2();
}
、後、ちょうどmethod2
を呼び出す(与えられたコードを実行し、全体のことをアドバイスと呼ばれるcall(void method1())
部分がと呼ばれています。ポイントカットは、ポイントカットはジョインポイントのセットです ---プログラム内でビヘイビアーを変更したり、新しいビヘイビアーを注入したりする指定可能な場所です。言語。
同様の機能を備えた他のアスペクト指向言語があります。
"A Reflective Model for First Class Dependencies"には、このような依存関係をメタオブジェクトの助けを借りて「他のアプリケーションの問題と直交する」形で表現できる言語が記述されています。しかし、それは研究プロトタイプでした。メタオブジェクトとメタオブジェクトのプロトコルに関する研究は、業界への道を開いたアスペクト指向プログラミングにつながりました。実際には、これはもっと現実的なものになるでしょう。