我目前正在学习面向方面的编程,当我尝试练习一点时,我意识到我在同一方面设计了不同的方法,我开始想知道这是否是最好的方法,或者我是否应该创建不同的方面针对不同的方法。我将尝试解释更多我所做的事情:我有 2 节课:
- Calculator类有多种方法,如加法、乘法、求反、重置等。
- AOPmain类。
我创建了另一个类(ReturnMessage类)作为方面,在这个类中我创建了 2 个方法 - 正如您在下面的代码中看到的那样)(一个应用于Calculator类中的一半方法,第二个应用于一个用于同一类中的其他一些方法 - 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 用户都会很有趣,所以我希望你们保持冷静。