C#设计模式(十)代理模式
来源:互联网 发布:汉字发音软件 编辑:程序博客网 时间:2024/06/07 05:31
一、引言
在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象,然后客户端只需要访问代理对象,由代理对象去帮我们去请求目标对象并返回结果给客户端,这样的一个解决思路就是今天要介绍的代理模式。
2.1 定义
代理模式——就是给某一个对象提供一个代理,并由代理对象控制对原对象的引用。在一些情况下,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。例如电脑桌面的快捷方式就是一个代理对象,快捷方式是它所引用的程序的一个代理。
class Program { static void Main(string[] args) { MainSystem ms = new ProxySystem(); ms.GetData(); Console.ReadLine(); } public abstract class MainSystem { public abstract void GetData(); } public class RealSystem : MainSystem { public override void GetData() { Console.WriteLine("执行数据查询"); } } public class ProxySystem : MainSystem { RealSystem rs; public override void GetData() { Console.WriteLine("通过代理查询数据"); if (rs == null) { rs = new RealSystem(); } rs.GetData(); } } }
三、代理模式的优缺点
全面分析完代理模式之后,让我们看看这个模式的优缺点:
优点:
- 代理模式能够将调用用于真正被调用的对象隔离,在一定程度上降低了系统的耦合度;
- 代理对象在客户端和目标对象之间起到一个中介的作用,这样可以起到对目标对象的保护。代理对象可以在对目标对象发出请求之前进行一个额外的操作,例如权限检查等。
缺点:
- 由于在客户端和真实主题之间增加了一个代理对象,所以会造成请求的处理速度变慢
- 实现代理类也需要额外的工作,从而增加了系统的实现复杂度。
0 0
- C#设计模式(十)代理模式
- 设计模式(十)代理模式
- C#设计模式学习小结之十 代理模式
- 设计模式(十)---代理模式与装饰模式
- 【C#设计模式-代理模式】
- C#设计模式--代理模式
- 面向对象的设计模式(十),代理模式
- (十)Java设计模式之代理模式
- 设计模式学习(十):代理模式
- C#设计模式(十)观察者模式(Observer Pattern)
- C#设计模式之代理模式(一)
- C#设计模式之代理模式(二)
- C#设计模式之代理模式(三)
- C#设计模式之代理模式(四)
- C#设计模式之代理模式(Proxy Pattern)
- C#设计模式之代理模式(一)
- C#设计模式之代理模式(二)
- C#设计模式之代理模式(三)
- Ubuntu环境安装配置Bugzilla
- DLL文件——让我来管理(二)
- ios 滑动手势向右移动
- History API 使用不当导致浏览器无法后退
- C#连接数据库sqlserver2005,执行存储过程的实例
- C#设计模式(十)代理模式
- nyoj 301递推求值 (矩阵+快速幂)
- 基于Ogre的角色控制器
- 【黑马程序员】经典指针问题
- iOS NSURLSession使用
- Linux搭建openfire服务
- Hibernate学习笔记之持久化实现
- CI框架支持$_GET两种方法
- ubuntu 安装 python3 升级