是否可以在不改变方法的情况下为meothd添加钩子?例如:
public class class1{
public void method1(){}
}
public class class2{
public void method2(){}
}
现在每次执行method1()时如何执行method2(),而不更改class1中的任何内容?
答案 0 :(得分:4)
这称为AOP或Aspect Oriented Programming,通过字节码操作实现。
Spring includes facilities for AOP
AOP的详细描述对于StackOverflow来说太长了,因为Web上有很多好的资源,所以它是多余的。
答案 1 :(得分:0)
使用'装饰器模式'扩展class1的功能。这种方法需要更改调用class1
的代码