代理模式
- 定义:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式是一种对象结构模型。
- 代理模式为对象的访问控制提供看=了一种设计方案。
- 为了让客户端能够一致对待真实对象和代理对象,在代理模式中引入抽象层。
代理模式结构
代理模式UML结构
- Subject(抽象主题角色):声明了真实主题和代理主题的共同接口,使得在任何使用真实主题的地方都可以使用代理主题,客户端通常需要针对抽象主题角色进行编程。
- Proxy(代理主题角色):代理主题角色内部包含了读真实主题的引用,从而可以在任何时候操作真实主题对象;在代理主题角色内部包含了对真实主题的引用,从而可以在需要的时候创建和删除真实主题对象,并对真实主题对象的使用加以约束。通常,在代理主题角色中,客户端在调用所引用的真实主题操作之前或之后还需要执行其他操作,而不仅仅是单纯地调用真实主题对象中的操作。
- RealSubject(真实主题角色):定义了代理角色所代表的真实对象,在真实主题角色中实现了真实的业务操作,客户端可以通过代理主题角色调用真实主题角色中定义的操作。
代理模式分类
- 远程代理(Remote Proxy):
- 虚拟代理(Virtual Proxy):
- 保护代理(Protect Proxy):
- 缓冲代理(Cache Proxy):
- 智能引用代理(Smart Reference Proxy):