代理模式和适配器模式非常相似,区别在于代理模式可以在真正的业务处理前后进行一些处理。使用代理模式可以控制程序对 RealSubject
对象的访问,或是在执行业务处理的前后进行相关的预处理和后置处理。下面简单示例演示下(本案例是典型的静态代理模式):
(一)基本要素
1、真正的处理逻辑
public class RealSubject {
public void operation() {
System.out.println("真正的方法调用");
}
}
2、用户直接调用的接口
public interface ISubject {
void opreation();
}
(二)两种模式
1、适配器模式
public class adapter {
private RealSubject realSubject;
public adapter(RealSubject realSubject) {
this.realSubject = realSubject;
}
public void operation() {
realSubject.operation();
}
}
2、代理模式
public class Proxy {
private RealSubject realSubject;
public Proxy(RealSubject realSubject) {
this.realSubject = realSubject;
}
public void operation() {
before();
realSubject.operation();
after();
}
public void before() {
System.out.println("业务处理开始前。。。");
}
public void after() {
System.out.println("业务处理开始后。。。");
}
}