2.7 Proxy模式
2.7.1 功能
代理这个词随处可见,实际上这里的含义也和生活中遇到的各种代理是类似的。它主要可以完成三种功能
· Remote Pro x y:负责对请求及其参数进行编码,并向不同地址空间中的实体发送已编码的请求。
· Virtual Proxy:可以缓存实体的附加信息,以便延迟对它的访问。
· Protection Proxy: 检查调用者是否具有实现一个请求所必需的访问权限
2.7.2 结构
• Proxy
— 保存一个引用使得代理可以访问实体。若R e a l S u b j e c t和Su b j e c t的接口相同,P r o x y会引用Su b j e c t。
— 提供一个与S u b j e c t的接口相同的接口,这样代理就可以用来替代实体。
— 控制对实体的存取,并可能负责创建和删除它。
• Subject
— 定义RealSubject 和P r o x y的共用接口,这样就在任何使用 R e a l S u b je c t的地方都可以使用Pr o x y。
• R e a l S u b j e c t
— 定义Pr o x y所代表的实体。