掌握静态代理 2022年5月7日 10:43 • Java 掌握静态代理前,先掌握什么是代理: 一、代理概念 为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 图1:代理模式 从图中可以看出,代理接口(Subject)、代理类(ProxySubject)、委托类(RealSubject)形成一个“品”字结构。 根据代理类的生成时间不同可以将代理分为静态代理和动态代理两种。 下面以一个模拟需求说明静态代理和动态代理:委托类要处理一项耗时较长的任务,客户类需要打印出执行任务消耗的时间。解决这个问题需要记录任务执行前时间和任务执行后时间,两个时间差就是任务执行消耗的时间。 静态代理: 由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了 静态代理类优缺点 优点:业务类只需要关注业务逻辑本身,保证了业务类的重用性。这是代理的共有优点。 缺点: 1)代理对象的一个接口只服务于一种类型的对象,如果要代理的方法很多,势必要为每一种方法都进行代理,静态代理在程序规模稍大时就无法胜任了。 2)如果接口增加一个方法,除了所有实现类需要实现这个方法外,所有代理类也需要实现此方法。增加了代码维护的复杂度。 JavaEE学院 http://java.itcast.cn/ 原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/253283.html AppjavamicrosoftWeb微软程序员 赞 (0) 0 生成海报 2019年新版Java学习路线图(内含大纲+视频+工具+教材+面试) 上一篇 2022年5月7日 Linux的用户和组 下一篇 2022年5月7日 相关推荐 nginx变量名规则详解程序员 2021年7月15日 19 岁程序员找 bug 居然赚到 100 万美元 2022年5月4日 SSH连接数限制 2021年8月6日 Mybatis-Plus自定义sql语句报错:org.apache.ibatis.binding.BindingException:Invalid bound statement not found详解编程语言 2021年7月19日 ABAP-消息发布详解编程语言 2021年7月19日 JOOMLA SEO重要设置之一友好URL形式 2022年4月18日 #、Java、JavaScript 和 Python 中的数字溢出管理 2022年11月4日 Java 分页工具类详解编程语言 2021年7月19日 How to Plot Multiple Plots using Bokeh in Python 2022年5月30日 10个jQuery表单操作代码片段详解编程语言 2021年7月18日 发表回复 请登录后评论...登录后才能评论 提交