1.概念及简介
别名:Surrogate
意图:
为目标对象提供一个占位对象或代理对象,用来控制客户端对目标对象的访问。
应用场景:
- 控制昂贵对象的实例化;
- 控制客户端访问目标对象的权限;
- 为远程对象提供本地引用代理。
优缺点:
- 代码结构变复杂
角色类:
Subject 目标接口
RealSubject 目标接口实现类(昂贵类)
Proxy 代理类,方法具体实现依赖RealSubject
Client 客户端
类图
Proxy和RealSubject均是Subject的实现类;
Client对象中,Subject引用指向Proxy对象而非RealSubject对象;
Proxy opration接口的实现依赖RealSubject对象的接口;