掌握静态代理 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 相关推荐 JOOMLA SEO重要设置之一友好URL形式 2022年4月18日 谷歌web编程语言Dart迈入1.0正式版 2021年8月6日 我的 7 大 Rust 关键字 2021年8月6日 Linux系统优化实现高并发详解程序员 2021年7月16日 从芮勇博士朋友圈 看联想为什么要挖他? 2021年8月10日 无密码认证方式 2021年8月29日 从语言学角度看词嵌入模型 2021年9月1日 应用系统安全访问策略 2021年9月6日 权力的游戏:移动互联网“造墙”简史 2021年9月17日 黑客在PS4成功装上Linux:然后玩嗨了 2021年12月9日 发表回复 请登录后评论...登录后才能评论 提交