gpt4 book ai didi

java - 什么时候一组围绕 Action 进入同一方面,什么时候应该创建不同的方面?

转载 作者:搜寻专家 更新时间:2023-11-01 02:12:56 26 4
gpt4 key购买 nike

我目前正在学习Aspect-Oriented Programming,当我试着练习一点点时,我意识到我在同一方面设计不同的方法,我开始怀疑这是否是最好的方法,或者我是否应该为不同的方法创建不同的方面。我将尝试更多地解释我所做的事情:我有 2 节课:

  1. Calculator 类有加法、乘法、求反法、复位法等多种方法。
  2. 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 用户也会很有趣,所以我希望你们耐心等待。

最佳答案

我会为我想要跟踪的每个横切关注点创建一个方面。没关系,在你的方面有多个切入点/方法。

您可以让一个方面负责日志记录,一个负责指标等...

当我使用 AoP 测量性能时,我发现此链接非常有用。现有应用程序。

它讨论的是现有代码库的方面,但它可以应用于任何情况。

Applying AspectJ to an Existing Codebase

关于java - 什么时候一组围绕 Action 进入同一方面,什么时候应该创建不同的方面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13846873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com