攸县网站定制,网站备案没公司,怎么在百度上免费做广告,腾讯云wed服务器做网站一、代理模式简介#xff08;Brief Introduction#xff09; 代理模式#xff08;Proxy Pattern#xff09;对其他对象提供一种代理以控制对这个对象的访问。 二、解决的问题#xff08;What To Solve#xff09; 1、远程代理 远程代理#xff0c;也就是为了一个对象… 一、代理模式简介Brief Introduction 代理模式Proxy Pattern对其他对象提供一种代理以控制对这个对象的访问。 二、解决的问题What To Solve 1、远程代理 远程代理也就是为了一个对象在不同的地址空间提供局部代表。这样可隐藏一个对象存在与不同地质空间的事实隐藏对象所在的地址空间。 比如.Net Web Service ,当一个项目在加入一个Web引用引用Web Service的时候会在项目中生成一个WebReference文件夹和响应的文件这些文件夹和文件就是代理 客户端在调用此代理的时候实际上已经解决了远程访问的问题。 2、虚拟代理 虚拟代理是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。这样可以达到最优化的性能。 比如浏览器使用代理模式优化网页下载也就是首先展示网页文字图片需要一张一张地下载后才能看到。 3、安全代理 安全代理用来控制真实对象访问时的权限。一般用于对象应该有不同的访问权限的时候。 4、智能指引 智能指引是指当调用真实的对象时代理处理另外一些事情。比如在访问一个实际对象前检查是否已经锁定它以确保其他对象不能改变它。也就是在访问一个对象时附加的一些内务处理。 三、代理模式分析Analysis 1、代理模式结构 2、源代码 1、抽象类 Subject public abstract class Subject { public abstract void Request(); } 2、真实实体RealSubject 继承于Subject public class RealSubject:Subject { public override void Request() { Console.WriteLine(对象的真实实体方法在执行。); } } 3、代理类Proxy 继承于Subject类同时引用RealSubject类 public class Proxy:Subject { private RealSubject realSubject; public override void Request() { Console.WriteLine(通过代理类访问对象真实实体的方法。); if (realSubject null) { realSubject new RealSubject(); } realSubject.Request(); } } 4、客户端代码 class Program { static void Main(string[] args) { Proxy proxy new Proxy(); proxy.Request(); Console.Read(); } } 3、程序运行结果 四案例分析Example 五、总结Summary 代理模式Proxy Pattern对其他对象提供一种代理以控制对这个对象的访问。代理模式分为远程代理、虚拟代理、安全代理和智能指引。 本文转自灵动生活博客园博客原文链接http://www.cnblogs.com/ywqu/archive/2010/01/22/1653875.html 如需转载请自行联系原作者