设计模式学习笔记-代理模式
2011-08-18 09:30
501 查看
代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问,简单的来说调用这个类的同时其实里面是别的类在干事。
应用有
1.远程代理:也就是为一个对象在不同的地址空间提供局部代表,这样可以影藏一个对象存在于不同地址空间的事实,比如.net里的webservice。
2.虚拟代理:根据需要将一个资源消耗很大的或者比较复杂的对象延迟到真正需要时才创建,比如延迟加载图片,优先加载文字
3.保护代理:控制对一个对象的访问权限,用于对象有权限设置的时候
4.智能引用:当调用真实对象时,代理处额外的事情来,提供额外的服务,如计算对象真实的引用次数,这样对象没有引用时可以自动释放它,通过代理访问一个对象时做一些额外的内务处理。
1.添加接口类Subject
2.真实的处理类
3.代理执行的类
小结:逻辑上比较简单,不再举例详解
应用有
1.远程代理:也就是为一个对象在不同的地址空间提供局部代表,这样可以影藏一个对象存在于不同地址空间的事实,比如.net里的webservice。
2.虚拟代理:根据需要将一个资源消耗很大的或者比较复杂的对象延迟到真正需要时才创建,比如延迟加载图片,优先加载文字
3.保护代理:控制对一个对象的访问权限,用于对象有权限设置的时候
4.智能引用:当调用真实对象时,代理处额外的事情来,提供额外的服务,如计算对象真实的引用次数,这样对象没有引用时可以自动释放它,通过代理访问一个对象时做一些额外的内务处理。
1.添加接口类Subject
/// <summary> /// 定义了RealSubject和Proxy的公共接口,这样就在任何使用RealSubject的地方使用Proxy /// </summary> abstract class Subject { public abstract void Request(); }
2.真实的处理类
class RealSubject:Subject { public override void Request() { Console.WriteLine("真实的请求"); } }
3.代理执行的类
class Proxy:Subject { RealSubject realSubject; public override void Request() { if(realSubject==null) { realSubject = new RealSubject(); } realSubject.Request(); } }
小结:逻辑上比较简单,不再举例详解
相关文章推荐
- 设计模式--学习笔记--代理模式Proxy--基础篇
- 设计模式学习笔记十六:代理模式(Proxy Pattern)
- 【java学习笔记s】设计模式--静态代理
- 设计模式C++学习笔记之二(Proxy代理模式)
- 【设计模式】学习笔记15:代理模式(Proxy Pattern)
- 步步为营 .NET 设计模式学习笔记 七、Proxy(代理模式
- 设计模式C++学习笔记之二(Proxy代理模式)
- 设计模式学习笔记之代理模式
- 设计模式学习笔记(十三)——Proxy代理模式
- 设计模式C++学习笔记之九(Proxy代理模式)
- 四、代理模式——设计模式学习笔记
- 设计模式学习笔记-代理模式
- 设计模式C++学习笔记之二(Proxy代理模式)
- 步步为营 .NET 设计模式学习笔记 七、Proxy(代理模式)
- Java-马士兵设计模式学习笔记-代理模式-动态代理 调用Proxy.newProxyInstance()
- 设计模式学习笔记——代理模式
- [设计模式学习笔记]PROXY(代理)
- Java-马士兵设计模式学习笔记-代理模式--动态代理 修改成可以代理任意接口
- 设计模式学习笔记--代理(Proxy)模式