一、为什么要使用动态代理
当一个对象或多个对象实现了N中方法的时候,由于业务需求需要把这个对象和多个对象的N个方法加入一个共同的方法,比如把所有对象的所有方法加入事务这个时候有三种方法:
方法一:一个一个对象一个一个方法去加,很显然这个方法是一个比较笨的方法。
方法二:加一个静态代理对象将这个静态代理对象实现要加事务对象的接口。然后在静态代理对象里面每个方法里面加上事务。
方法三:使用动态...
分类:
编程语言 时间:
2014-09-29 15:07:01
阅读次数:
263
关于动态代理,大家显式使用的可能比较少,但是说到Spring的Interceptor、各种各样的事务管理,大家会更熟悉一些,没错,这些在底层实现上,都是使用的动态代理,确切的说,想要为一个类的方法,动态添加功能,比如验证、资源释放、日志处理等,使用的都是动态代理。
为了平缓的过渡,先来说一下静态代理。
静态代理
静态代理的思路很简单:把一个真实对象的实例放到代理对象的实例中,...
分类:
其他好文 时间:
2014-09-04 10:33:49
阅读次数:
250
首先说一下动态代理和静态代理的区别:
静态代理:是预先写好或由特定工具自动生成的代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。
动态代理:代理是在程序运行时,运用反射机制动态创建而成的,程序运行之前,代理是不存在的。
Java的静态代理最简单的场景,一个接口,一个实现类,一个代理类就可以搞定,这个代理类持有接口实现类的引用,这样便可以实现委托对象的增强了。
Jav...
分类:
其他好文 时间:
2014-08-31 17:17:41
阅读次数:
170
学过设计模式,用过设计模式,可是转瞬又忘了,这些模式究竟是什么,究竟是干什么用,究竟是用在哪里的.看DRP的时候,又介绍了代理模式,介绍了静态代理,动态代理;当时就认为代理模式,就像是在client和真实的主题类中加了一个隔层,就像是解耦,加了一个中间层.之前学习的时候,感觉那个样例举得不好,...
分类:
其他好文 时间:
2014-08-27 18:13:28
阅读次数:
195
代理模式的使用价值还是挺高的,各种框架中都用到了。把基础认真看看,学框架的时候也容易了。关于静态代理: 代理模式的应用场景:如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法: 1、修改原有的方法来适应。这样违反了“对扩展开放,对修改关闭”的原则。 2、就是采用一个代理类...
分类:
其他好文 时间:
2014-08-24 20:52:13
阅读次数:
243
这篇博文,我们以类图和代码的形式来对比学习一下静态代理和动态代理,重点解析各自的优缺点。
定义
代理模式(Proxy Pattern)是对象的结构型模式,代理模式给某一个对象提供了一个代理对象,并由代理对象控制对原对象的引用。
静态代理VS动态代理,打成了平手,各自有各的独特之处,均不可代替,在项目中到底使用哪种代理,没有最好,只有更合适。...
分类:
编程语言 时间:
2014-08-23 08:50:30
阅读次数:
275
如上文所述,它和装饰模式的差别只有一点点。——它 就是获取代理的时候,不用传具体实现的参数—— 而是有代理全权负责具体实现的工作———— 对于装饰模式,其实也很好理解—— 它只是想稍微做些工作,所以,需要你给我提供具体实现的引用。而代理模式不是需要注意的是java静态代理—— 需要实现特定的接口In...
分类:
其他好文 时间:
2014-08-17 01:00:11
阅读次数:
220
代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。
按照代理的创建时期,代理类可以分为两种。
静态代理:由程序员创建或特...
分类:
编程语言 时间:
2014-08-05 19:25:50
阅读次数:
339
Aspect Oriented Programming 面向切面编程。解耦是程序员编码开发过程中一直追求的。AOP也是为了解耦所诞生。具体思想是:定义一个切面,在切面的纵向定义处理方法,处理完成之后,回到横向业务流。AOP 主要是利用代理模式的技术来实现的。1、静态代理:就是设计模式中的proxy模...
分类:
编程语言 时间:
2014-07-30 11:43:23
阅读次数:
330
一、本节主要点 代理的概念 静态代理和动态代理 cglib 什么是代理呢? 代理,就是一个角色代表另一个角色去完成某件事。 比如,你肚子饿了,又懒得出去吃饭,这时候,你的朋友正好要出去,你让他帮忙打包。那他就是代理类。你就是委托他去做事。
分类:
其他好文 时间:
2014-07-21 08:25:55
阅读次数:
230