java中代理模式可以理解为用一个代理类去替代实际的类运行一些逻辑,可以在运行被代理类的前后加上一些逻辑处理。
静态代理实现:
1、定义一个接口规范,供代理类和被代理类实现,这样代理类和被代理类都可以通过接口实例化
2、定义被代理类
3、定义代理类,里面实例化被代理类,并进行调用
静态代理角色有:抽象角色、委托类或被代理类、代理类
代码举例
抽象角色:
interface Subject{
void operate();
}
委托类:
public RealObject implements Subject {
public void operate(){
System.out.print("执行真正的方法");
}
}
代理类
public Class ProxyObject implements Subject{
private Subject sub;
Proxy{
sub = new Subject();
}
public void operate(){
System.out.print("调用委托类前可以加逻辑");
//调用被代理类方法
sub.operate();
System.out.print("调用委托类后可以加逻辑");
}
}
关于动态代理,这两天有时间再总结一下吧。