1700461016
1700461017
代码清单12-25 抽象主题
1700461018
1700461019
public interface Subject{
1700461020
1700461021
//业务操作
1700461022
1700461023
public void doSomething(String str);
1700461024
1700461025
}
1700461026
1700461027
其中的doSomething是一种标识方法,可以有多个逻辑处理方法,实现类如代码清单12-26所示。
1700461028
1700461029
代码清单12-26 真实主题
1700461030
1700461031
public class RealSubject implements Subject{
1700461032
1700461033
//业务操作
1700461034
1700461035
public void doSomething(String str){
1700461036
1700461037
System.out.println(“do something!–->”+str);
1700461038
1700461039
}
1700461040
1700461041
}
1700461042
1700461043
重点是我们的MyInvocationHandler,如代码清单12-27所示。
1700461044
1700461045
代码清单12-27 动态代理的Handler类
1700461046
1700461047
public class MyInvocationHandler implements InvocationHandler{
1700461048
1700461049
//被代理的对象
1700461050
1700461051
private Object target=null;
1700461052
1700461053
//通过构造函数传递一个对象
1700461054
1700461055
public MyInvocationHandler(Object_obj){
1700461056
1700461057
this.target=_obj;
1700461058
1700461059
}
1700461060
1700461061
//代理方法
1700461062
1700461063
public Object invoke(Object proxy,Method method,Object[]args)
1700461064
1700461065
throws Throwable{
[
上一页 ]
[ :1.700461016e+09 ]
[
下一页 ]