2
是否可以在不更改方法的情况下向钩子添加钩子?例如:在不更改源代码的情况下添加钩子
public class class1{
public void method1(){}
}
public class class2{
public void method2(){}
}
现在,我怎么能执行方法2()每次当方法1()被执行,在不改变的Class1什么?
是否可以在不更改方法的情况下向钩子添加钩子?例如:在不更改源代码的情况下添加钩子
public class class1{
public void method1(){}
}
public class class2{
public void method2(){}
}
现在,我怎么能执行方法2()每次当方法1()被执行,在不改变的Class1什么?
这被称为AOP或Aspect Oriented Programming,并通过字节码操作实现。
Spring includes facilities for AOP。
AOP的详细描述对StackOverflow来说太长了,而且冗余,因为网上有很多好的资源。
使用'装饰模式'来扩展class1的功能。这种方法需要更改调用class1的代码