结构型设计模式之Proxy(代理)
结构型设计模式之Proxy(代理)
前言:
代理模式,aop环绕通知,动态代理,静态代理 都是代理的一种,这次主要是记录设计模式的代理demo案例,详情请看其他笔记。
1)意图
为其他对象提供一种代理以控制对这个对象的访问。
2)结构
3)适用性
Poxy模式适用于在需要比较通用和复杂的对象指针代替简单的指针的时候,常见情况有:
- 远程代理(Remote Proxy)为一个对象在不同地址空间提供局部代表。
- 虚代理(Virtual Proxy)根据需要创建开销很大的对象。
- 保护代理(Protection Proxy)控制对原始对象的访问,用于对象应该有不同的访问权
限的时候。 - 智能引用(Smart Reference)取代了简单的指针,它在访问对象时执行一些附加操作。
代码:
/*** @author psd 结构性设计模式之代理模式*/
public class ProxyDemo {public static void main(String[] args) {RealSubject realSubject = new RealSubject();Proxy proxy = new Proxy(realSubject);proxy.request();}
}interface Subject{void request();
}class Proxy implements Subject{protected RealSubject realSubject;public Proxy(RealSubject realSubject){this.realSubject = realSubject;}@Overridepublic void request() {System.out.println("我是中介帮您看房.....");realSubject.request();System.out.println("我是中介看好房后对接租方和被出租方.....");}
}class RealSubject implements Subject{@Overridepublic void request() {System.out.println("我是客户要租房。。。。。");}
}