掌握静态代理 2022年5月7日 10:43 • 编程笔记 掌握静态代理前,先掌握什么是代理: 一、代理概念 为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 图1:代理模式 从图中可以看出,代理接口(Subject)、代理类(ProxySubject)、委托类(RealSubject)形成一个“品”字结构。 根据代理类的生成时间不同可以将代理分为静态代理和动态代理两种。 下面以一个模拟需求说明静态代理和动态代理:委托类要处理一项耗时较长的任务,客户类需要打印出执行任务消耗的时间。解决这个问题需要记录任务执行前时间和任务执行后时间,两个时间差就是任务执行消耗的时间。 静态代理: 由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了 静态代理类优缺点 优点:业务类只需要关注业务逻辑本身,保证了业务类的重用性。这是代理的共有优点。 缺点: 1)代理对象的一个接口只服务于一种类型的对象,如果要代理的方法很多,势必要为每一种方法都进行代理,静态代理在程序规模稍大时就无法胜任了。 2)如果接口增加一个方法,除了所有实现类需要实现这个方法外,所有代理类也需要实现此方法。增加了代码维护的复杂度。 JavaEE学院 http://java.itcast.cn/ 原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/253283.html AppmicrosoftWeb微软程序员 赞 (0) 0 0 生成海报 2019年新版Java学习路线图(内含大纲+视频+工具+教材+面试) 上一篇 2022年5月7日 10:41 Linux的用户和组 下一篇 2022年5月7日 10:46 相关推荐 Win10技巧:“寻找”Windows 10专用DVD播放器的方法 2021年12月21日 Unicode 和 UTF-8 是什么关系? 2021年8月5日 上交所决定暂缓蚂蚁集团上市;号称上课4个月拿30万年薪,芯片培训班火了;华为55岁外籍副总裁突然离世|雷锋早报 2021年8月31日 在 Windows 上使用开源屏幕阅读器 NVDA 2022年6月13日 linux hugepage + oracle 11.2.0.4详解程序员 2021年7月15日 gensim:No module named queue详解程序员 2021年7月17日 2019 年中国开源年度报告(问卷篇) 2021年8月7日 Lighthouse性能指标的技术SEO指南 2022年5月23日 如何画出一张合格的技术架构图? 2022年5月19日 ICCV 历年最佳论文合集 2021年9月2日 发表回复 请登录后评论...登录后才能评论 提交