添加钩子而不更改源代码
Adding hook without changing source code
是否可以在不更改方法的情况下将钩子添加到方法中?例如:
public class class1{
public void method1(){}
}
public class class2{
public void method2(){}
}
现在如何在每次执行 method1() 时执行 method2(),而不更改 class1 中的任何内容?
这称为 AOP 或 Aspect Oriented Programming,并通过字节码操作实现。
Spring includes facilities for AOP.
AOP 的详细描述对于 Whosebug 来说太长了,而且是多余的,因为网络上有很多好的资源。
使用'Decorator pattern'扩展class1的功能。这种方法需要更改调用 class1
的代码
是否可以在不更改方法的情况下将钩子添加到方法中?例如:
public class class1{
public void method1(){}
}
public class class2{
public void method2(){}
}
现在如何在每次执行 method1() 时执行 method2(),而不更改 class1 中的任何内容?
这称为 AOP 或 Aspect Oriented Programming,并通过字节码操作实现。
Spring includes facilities for AOP.
AOP 的详细描述对于 Whosebug 来说太长了,而且是多余的,因为网络上有很多好的资源。
使用'Decorator pattern'扩展class1的功能。这种方法需要更改调用 class1
的代码