1

私はアスペクト指向プログラミングを勉強しており、AspectJ を使用していくつかのアスペクトを作成し、クラスを変更したいと考えています。問題は、クラスのすべてのインスタンスがすべての側面によって変更されていることです。各インスタンスに使用する側面を選択したいと考えています。

別の問題、同じメソッドのさまざまな側面からのアドバイスの順序を選択する方法は?

ありがとう

4

2 に答える 2

2

とりあえず部分的にしかお答えしません。

2番目の質問について:

同じメソッドのさまざまな側面からのアドバイスの順序を選択する方法は?

宣言の優先順位を見てください

于 2012-05-06T11:51:32.697 に答える
1

これはあなたが探している答えではないかもしれませんが、クラスのすべてのインスタンスがアスペクトによって変更されるのは設計によるものです。AspectJは、プログラムの一部ではなく、プログラム全体のセマンティクスに影響を与えると考える必要があります。

AspectJはバイトコード操作によって実装されるため、AspectJ仕様の一部であっても、個々のインスタンスに変更を加えることはできません。

ただし、個々のインスタンスにウィービングするだけで実装に問題があることを意味するため、実装が必要なものを実装する別の方法があるかもしれません。

于 2012-05-07T17:46:53.927 に答える