代理模式(Proxy 英 ['prɒksɪ] 美 ['prɑksi] n. 代理人;委托书;代用品 )
为其他对象提供一种代理以控制对这个对象的访问。

Subject 类,定义了 RealSubject 和 Proxy 的共用接口,这样就在任何使用 RealSubject 的地方都可以使用哈 Proxy。
1 abstract class Subject{ 2 public adstract void Request(); 3 }
RealSubject 类,定义 Proxy 所代表的真实实体
1 class RealSubject : Subject{ 2 public override void Request(){ 3 //真实的请求 4 } 5 }
Proxy 类,保存一个引用使得代理可以访问实体,并提供一个与 Subject 的接口相同的接口,这样代理就可以用来替代实体。
1 class Proxy : Subject{ 2 RealSubject realSubject; 3 public override void Request(){ 4 if(realSubject == nul){ 5 realSubject = new RealSubject(); 6 } 7 realSubject.Request(); 8 } 9 }
客户端代码
Proxy proxy = new Proxy(); proxy.Request();
就是代理类 持有了目标的一个引用(对象),并通过继承可以在代理的方法中调用目标的方法
代理一版分为几种:
第一:远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。
第二:虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。 例如 打开网页文字立刻出现,图片是一点点刷出来的,那些未打开的图片框,就是通过代理来替代真实的图片,此时代理存放真实图片的大小和路径。
第三:安全代理,用来控制真实对象访问时的权限。
第四:智能指引,是指当调用真实的对象时,代理处理另外一些事。
代理模式其实就是在访问对象时引入一定程度的简介性,因为这种间接性,可以附加多种用途。
浙公网安备 33010602011771号