代理模式
2015-07-30 19:20
253 查看
【概念】
为另一个对象,提供一个替身或占位符,以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。
提供其他对象一个代理或占位符,来控制该对象的访问权限。
【为什么要代理模式】
1.数据和业务逻辑隔开。例如:写好数据库操作类,然后用代理类去执行数据库操作类,这样,在需要数据的地方,调用代理类,间接操作
数据库操作类,达到数据和业务逻辑完全隔离的效果。
【UML图】
【生活小例子帮助理解】
过年加班比较忙,没空去买火车票,这时可以打个电话到附近的票务中心,叫他们帮你买张回家的火车票,当然这会附加额外的劳务费。
但要清楚票务中心自己并不卖票,只有火车站才真正卖票,票务中心卖给你的票其实是通过火车站实现的。这点很重要!
上面这个例子,你就是“客户”,票务中心就是“代理角色”,火车站是“真实角色”,卖票称为“抽象角色”!
【代理模式Demo】
http://download.csdn.net/detail/zgxzgxzg/8946151
为另一个对象,提供一个替身或占位符,以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。
提供其他对象一个代理或占位符,来控制该对象的访问权限。
【为什么要代理模式】
1.数据和业务逻辑隔开。例如:写好数据库操作类,然后用代理类去执行数据库操作类,这样,在需要数据的地方,调用代理类,间接操作
数据库操作类,达到数据和业务逻辑完全隔离的效果。
【UML图】
【生活小例子帮助理解】
过年加班比较忙,没空去买火车票,这时可以打个电话到附近的票务中心,叫他们帮你买张回家的火车票,当然这会附加额外的劳务费。
但要清楚票务中心自己并不卖票,只有火车站才真正卖票,票务中心卖给你的票其实是通过火车站实现的。这点很重要!
上面这个例子,你就是“客户”,票务中心就是“代理角色”,火车站是“真实角色”,卖票称为“抽象角色”!
【代理模式Demo】
http://download.csdn.net/detail/zgxzgxzg/8946151
相关文章推荐
- SGU 461 Wiki Lists dfs
- 每天一个小知识点18(Angularjs总结六)
- HDOJ 5336 XYZ and Drops 模拟
- 利用nodejs+phantomjs+casperjs采集淘宝商品的价格
- 杭电 2141 Can you find it?二分法+暴力查找
- leetcode之路017 Letter Combinations of a Phone Number
- C语言中的内存模型
- build path--use as source folder 应用
- iOS与服务器的对接
- android省市区三级联动案例:(三)主要功能实现
- java中添加日志
- 总线接口与计算机通信(五)CAN总线
- springMVC
- 键盘处理
- 行为金融学理论与股市关系,以及被恶意做空的私募圈
- poj1064 Cable master(hdoj1551)
- HDU5335.Walk Out
- hdu 4280 Island Transport(最大流)
- JSTL中<fmt:bundle >找不到properties文件的原因
- 暴力求解——UVA 572(简单的dfs)