代理模式
来源:互联网 发布:samba源码下载 编辑:程序博客网 时间:2024/06/01 19:18
代理模式的适用场景
代理模式就是给一个对象提供一个代理,并由代理对象控制对原对象的引用。
主要使用场景有:日志代理、权限代理、缓存代理、延迟代理
参与者:
Subject: 抽象角色。声明真实对象和代理对象的共同接口。
Proxy: 代理角色。代理对象与真实对象实现相同的接口,所以它能够在任何时刻都能够代理真实对象。代理角色内部包含有对真实对象的引用,所以她可以操作真实对象,同时也可以附加其他的操作,相当于对真实对象进行封装。
RealSubject: 真实角色。它代表着真实对象,是我们最终要引用的对象
Subject: 抽象角色
public interface ISubject { bool Check_Ticket(); bool TadeTicket(); }RealSubject: 真实角色
class RealSubject : ISubject { public bool Check_Ticket() { return true; } public bool TadeTicket() { return false; } }Proxy: 代理角色
class ProxySubject : ISubject {//代理模式就是把真实类包了一层,现在的写法就是日志代理,原有的方法只有特定的功能,在代理方法里面写上每个步骤都做了什么操作. private readonly RealSubject _realSubject = new RealSubject(); public bool Check_Ticket() { Console.WriteLine(@"先确认有没有票"); if (_realSubject.Check_Ticket()) { Console.WriteLine(@"确认有票."); return true; } else { Console.WriteLine(@"确认没有票."); return false; } } public bool TadeTicket() { Console.WriteLine(@"现在排队买票."); if (_realSubject.TadeTicket()) { Console.WriteLine(@"买到票了."); return true; } else { Console.WriteLine(@"没有买到票."); return false ; } } }结果:
阅读全文
0 0
- 代理模式--动态代理
- 代理模式-静态代理
- 代理模式-静态代理
- 代理模式 & 动态代理
- 代理模式--静态代理
- 代理模式--动态代理
- 代理模式(动态代理)
- 代理模式-动态代理
- 代理模式-动态代理
- 代理模式动态代理
- 代理模式-静态代理
- 代理模式-动态代理
- 代理模式 -动态代理
- 代理模式---动态代理
- 代理模式-动态代理
- 代理模式--静态代理
- 代理模式!
- 代理模式
- 再谈PHP单引号和双引号区别
- ORACLE Rman删除归档日志
- Python 学习File、os模块操作文件
- soj3160: Clear And Present Danger_最短路Floyd
- listview、gridview上滑加载更多图片,内存溢出outofmemery的解决方案
- 代理模式
- Expect to Wait Gym
- jquery的设置多个 CSS 属性
- Hibernate 组合主键映射、大对象映射、组件映射
- 【连载】计算机组成原理 --- 第五章 中央处理器
- Tcp/Ip
- understand软件使用教程
- 连接池配置与调用(一)
- HQL之多表查询(一对多和多对多)