私は現在アスペクト指向プログラミングを勉強していて、少し練習しようとしていたときに、同じアスペクトでさまざまなメソッドを設計していることに気付き、これが最善の方法なのか、それとも作成する必要があるのか疑問に思い始めました。さまざまな方法のさまざまな側面。私がしたことをもっと説明しようと思います:私は2つのクラスを持っていました:
- 電卓クラスには、add、multiply、negate、resetなどのいくつかのメソッドがありました。
- AOPmainクラス。
アスペクトとして別のクラス(ReturnMessageクラス)を作成し、このクラスで2つのメソッドを作成しました-以下のコードでわかるように)(1つはCalculatorクラスにあるメソッドの半分に適用され、2つ目は同じクラスの他のメソッドの1つ-Calculator)。私の質問は次のとおりです。他のメソッドと相互作用するアスペクトでいくつかのメソッドを作成するのは良い習慣ですか、それとも異なるアスペクトを作成する方が良いでしょうか?これが私のアスペクトのコードです:
@Aspect
public class ReturnMessage {
//the joinPoint is used to get the method names and args.
@Before("execution(public void *(double))")
public void returningMessage( JoinPoint jp) {
String method = jp.getSignature().getName();
double value = (Double) jp.getArgs()[0];
System.out.println("Going to "+method+" "+value);
}
@Before("@annotation(lala)")
public void returnMsg2(MyAnnotation lala) { //<-- should I create another aspect to put this method?
System.out.println(lala.msg());
}
}
それは私だけでなく、aopでプログラミングを始めているstackoverflowのすべてのユーザーにとっても興味深いものになると思いますので、皆さんが忍耐強くなってくれることを願っています。