1700448082
}
1700448083
1700448084
这是一个简单的静态代理。Java还提供了java.lang.reflect.Proxy用于实现动态代理:只要提供一个抽象主题角色和具体主题角色,就可以动态实现其逻辑的,其示例代码如下:
1700448085
1700448086
//抽象主题角色
1700448087
1700448088
interface Subject{
1700448089
1700448090
//定义一个方法
1700448091
1700448092
public void request();
1700448093
1700448094
}
1700448095
1700448096
//具体主题角色
1700448097
1700448098
class RealSubject implements Subject{
1700448099
1700448100
//实现方法
1700448101
1700448102
public void request(){
1700448103
1700448104
//业务逻辑处理
1700448105
1700448106
}
1700448107
1700448108
}
1700448109
1700448110
class SubjectHandler implements InvocationHandler{
1700448111
1700448112
//被代理的对象
1700448113
1700448114
private Subject subject;
1700448115
1700448116
public SubjectHandler(Subject_subject){
1700448117
1700448118
subject=_subject;
1700448119
1700448120
}
1700448121
1700448122
//委托处理方法
1700448123
1700448124
public Object invoke(Object proxy, Method method, Object[]args)
1700448125
1700448126
throws Throwable{
1700448127
1700448128
//预处理
1700448129
1700448130
System.out.println(“预处理”);
1700448131
[
上一页 ]
[ :1.700448082e+09 ]
[
下一页 ]