就是代理者去完成实际主人的事情,可以具有相同的接口,这在 JAVA 中是很容易实现的。
《大话设计模式》中就提到了代人表白这件事情,也是代理模式的一个很好代表。
- 建立代理接口
- 代理类去 new 实际类
- 代理类完成对实际类中方法的调用
主要用在以下几个方面
- 远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实
- 虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象
- 安全代理,用来控制真实对象访问时的权限
- 智能指引,是指当调用真实的对象时,代理处理另外一些事