团部培训笔记-设计模式-《2013-11-27 代理模式》
按:本文为ATIP团内部培训笔记,主讲人:winters1224,记录人:yp_811,转载请注明出处;
一、代理模式的概念:
代理模式:为其他对象提供一种代理以控制对这个对象的访问。
用一个代理类,控制对真实的实现类的访问。
二、代理模式的作用:
1、访问控制
2、延迟初始化
三、代理模式控制访问的方式:
1、远程代理控制访问远程对象
2、虚拟代理控制访问创建开销大的资源
3、保护代理基于权限控制对资源的访问
四、代理模式的实现
1.类图
通过代理类proxy,控制对impl的访问、初始化等操作
代理和实现类都实现同样的接口
2、时序图
步骤2用来做访问控制或者初始化
步骤3是无权限时的返回;步骤7是正常操作的返回。
步骤6时后处理。
3、代码实现
接口定义
public interface Server{public String service();
}
实现类
class ImplServer implements Server{@overridepublic String service(){return "Impl";}
}
代理类
public class ProxyServer implements Server{private Server impl;@overridepublic String service(){boolean allowAccess = preprocess();if(allowAccess){return impl.service();}else{return "denied";}}
}
客户端
public Class Client{public static void main(String[] arg){Server server=new ProxyServer();String serverResult=server.service();}
}
五、注意点:
1、访问控制:访问被阻止时的返回值处理。
2、资源控制:访问结束后释放资源的处理。
六、模式协作:
1、配合工厂模式
2、配合单例模式
3、配合亨元模式(池化实例)
4、配合策略模式
5、与装饰者模式的异同
相同点:都实现同一个接口;都很好的利用了“组合”;类图完全一样。
不同点:时序图上略有差异;目的也不一样。
七、项目应用:
1、ShiroFilter
2、数据库连接池
3、缓存
八、代理模式总结:
1、用代理类控制对实现类的访问
2、访问控制;资源控制
3、实现方法:类图、时序图
4、与其它模式协作:工厂模式,亨元模式,单例模式等
5、项目应用:基础框架部分
九、交流问题
动态代理和静态代理的区别
静态代理在代码中已经确定了具体的实现类;
动态代理只有在执行过程中才能确定要用哪个实现类。
本文出自 “ATIP團戰術策劃部” 博客,请务必保留此出处http://atip3.blog.51cto.com/6312771/1335409
转载于:https://blog.51cto.com/winters1224/1335698
团部培训笔记-设计模式-《2013-11-27 代理模式》相关推荐
- 设计模式(11)代理模式The Proxy Pattern - 1 - 远程代理rmi
代理模式 假设现在需要设置一个监视器Monitor,能够监视糖贩卖机GumballMachine的状态,位置信息.还有多少糖果等.一个简单的想法就是创建一个Monitor的类,构造参数包括Gumbal ...
- 设计模式(四)--代理模式
设计模式(四)–代理模式 文章目录 设计模式(四)--代理模式 其他链接 代理模式 1.简介 2.静态代理 角色 代码实现 好处 3.动态代理 代码实现 解析 其他链接 JVM学习笔记(一) JVM学 ...
- Java设计模式(10)代理模式(Proxy模式)
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,P ...
- 《拉勾Java高薪课程》阶段一输出 之 通过房屋租赁流程理解设计模式(单例模式,代理模式,工厂模式)--菜鸟小回
通过房屋租赁流程理解设计模式(单例模式,代理模式,工厂模式) 文章目录 通过房屋租赁流程理解设计模式(单例模式,代理模式,工厂模式) @[toc] 一.单例模式 1. 相关概念 2. 演示思路 3. ...
- 【设计模式与体系结构】代理模式
[设计模式与体系结构]代理模式 文章目录 [设计模式与体系结构]代理模式 一.实例分析 二.代码实现 三.实现结果 一.实例分析 (1) 代理模式设计一个房产中介的模拟程序. 要求:房产中介有介绍和代 ...
- 设计模式学习之1—代理模式
设计模式学习之1-代理模式 0.?先看这里 --- 诗雨的学习说明 1.从生活中初识代理 2.代理模式的类图和角色 3.静态代理和动态代理 4.静态代理 和 动态代理 的 使用模板 4.1 静态代理使 ...
- Head First设计模式读书笔记十 第十一章 代理模式
之前的总结链接 https://blog.csdn.net/u011109881/article/details/59191308 代理模式本身的框架结构并不难理解,但是在实际应用中,我们往往被实际应 ...
- 设计模式C++学习笔记之二(Proxy代理模式)
代理,一看名字就知道这只是个中介而已,真实的执行者在代理的后面呢.cbf4life在他的书里提的例子也很有趣,更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com.现在贴代码 ...
- C#设计模式之十二代理模式(Proxy Pattern)【结构型】
一.引言 今天我们要讲[结构型]设计模式的第七个模式,也是"结构型"设计模式中的最后一个模式,该模式是[代理模式],英文名称是:Proxy Pattern.还是老套路,先从名字上来 ...
最新文章
- springboot +security +mybatis+thymeleaf 实现简单的用户 角色 权限(资源) 管理
- 力邀安卓为鸿蒙效力,期末阅读题答题秘籍2
- 仓位 001 998 AUFNAHME不存在(L9009)
- id nfc模拟_手机NFC也可以刷ID卡门禁?无聊测试居然成功了
- 清华大学《操作系统》(九):进程和线程
- ls/vi等 command not found
- 学习 Python 第八天
- 周鸿祎的“流氓”可否借鉴?
- from collections import OrderedDict
- 超详细的Redis入门教程
- WIN10系统 screencap截图屏幕会自动放大怎么办
- 【公众号】微信进入公众号链接自动获取授权登陆
- 空间坐标系对应EPSG编号
- el-table中的表格的相同项合并(单元格合并),包含多层合并
- 查看pcie总线上的设备ID以及带宽计算
- OPPO、一加将在德国禁售?原来是被“专利流氓”诺基亚盯上了!
- 如何使用搜索技巧来成为一名高效的程序员(很好的总结)
- Android实现自定义字体
- MATLAB 二维数组的行列操作
- 计算机基础知识做网页,专业知识—计算机基础知识之网页制作 .doc