代理(Proxy)模式:为其他对象提供一种代理以控制对这个对象的访问。
Subject:定义RealSubject和Proxy的共用接口;
Proxy:保存一个可以访问实体RealSubject的引用,控制对实体的存取,负责创建和删除实体;
RealSubjet:Proxy所代表的实体;
适用性:
(1)远程代理(Remote Proxy):负责对请求及其参数进行编码,并向不同地址空间中的实体发送已编码的请求;
(2)虚代理(
Virtual Proxy):可缓存实体的附加信息,以便延迟对它进行访问;
(3)防护代理(Protection Proxy):检查调用者是否有请求的访问权限;
优点:
(1)职责清晰;
(2)高扩展性;
(3)智能化
缺点:
实现:
代理分为:普通代理,强制代理,动态代理。