码迷,mamicode.com
首页 > 其他好文 > 详细

动态代理模式

时间:2017-08-16 17:11:52      阅读:485      评论:0      收藏:0      [点我收藏+]

标签:监听   nbu   技术分享   分享   cloud   不用   执行流程   手动   UI   

动态代理模式简介:

动态代理能够自动监听代理对象的方法,并且能够自动生成代理类的代码,这样就不需要我们自己去重写代理对象里的方法了,这样解决了代理类代码因业务庞大而庞大的问题,因为动态代理模式会在代码运行时根据代码来在内存中动态生成一个代理类自动重写代理对象【学Java,到凯哥学堂kaige123.com】的方法,然后这个动态代理类再调用处理类里的代码,处理类再调用到实际方法上去。而且我们可以选择性的监听代理对象的方法,有些不需监听的方法就可以在处理类中过滤掉。所以动态代理的优势就在于可以自动的对代理类的方法进行统一的处理,而不用手动去修改代理类里的每个方法。

实现机制: 实现一个简单的动态代理需要四个类,第一步先编写一个接口类并声明需要的方法,第二步编写实际的实现类实现接口的方法,第三步编写ProxyHandler处理类,实现InvocationHandler接口,这个接口的方法是用来被动态代理类调用,和调用实际方法的,日志打印或者异常监控等代码语句可以写在这个方法里,最后编写测试类,测试类的main里要把实现类的对象反射出来,接着再把处理类的对象new出来,然后使用Proxy类调用生产动态带来类的方法,并且把此方法返回的对象转换成接口类型,最后使用这个接口类型的对象调用接口的方法。 在理论上可能描述的比较抽象、模糊,接下来看实际代码就清晰明了了。 第一步编写接口:

技术分享

第二步编写实现类:

技术分享

第三步编写处理类:

技术分享

第四步编写测试类:

技术分享

运行结果:

技术分享

代码图解:

技术分享

Debug模式执行流程:

技术分享

返回:

技术分享

技术分享

技术分享

动态代理模式

标签:监听   nbu   技术分享   分享   cloud   不用   执行流程   手动   UI   

原文地址:http://www.cnblogs.com/kaigexuetang/p/7373743.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!