首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java静态代理、动态代理范例

2013-11-09 
Java静态代理、动态代理实例采用Java代理模式,代理类通过调用委托类对象的方法,来提供特定的服务。委托类需

Java静态代理、动态代理实例

采用Java代理模式,代理类通过调用委托类对象的方法,来提供特定的服务。委托类需要实现一个业务接口,代理类返回委托类的实例接口对象。

按照代理类的创建时期,可以分为:静态代理和动态代理。

所谓静态代理: 指程序员创建好代理类,编译时直接生成代理类的字节码文件。

所谓动态代理: 在程序运行时,通过反射机制动态生成代理类。

?

一、静态代理类实例:

1、Serivce.java

?

5 楼 Link028 2012-06-27   探讨下:
动态代理实现
ServiceImpl target = new ServiceImpl(); 
        //创建动态代理类 
        ServiceProxy proxy = new ServiceProxy(target); 
        Service service = (Service) proxy.getProxyInstance();

新建  代理类对象 ServiceProxy proxy 时已经将委托对象传递进来了,
然后 调用   Service service = (Service) proxy.getProxyInstance();得到接口是不是
多此一举了?感觉直接用 target 不就OK了吗? 6 楼 xlaohe1 2012-06-27   我看见了IBM 7 楼 w156445045 2012-06-27   感觉没怎么说清楚, 8 楼 暗夜幽魂 2012-06-27   Link028 写道探讨下:
动态代理实现
ServiceImpl target = new ServiceImpl(); 
        //创建动态代理类 
        ServiceProxy proxy = new ServiceProxy(target); 
        Service service = (Service) proxy.getProxyInstance();

新建  代理类对象 ServiceProxy proxy 时已经将委托对象传递进来了,
然后 调用   Service service = (Service) proxy.getProxyInstance();得到接口是不是
多此一举了?感觉直接用 target 不就OK了吗?

用动态代理往往是要实现一些诸如:日志,权限等功能的插入。直接调用target就没办法实现这些额外功能。 例如本文中的权限控制。建议可以看一下spring中的AOP原理 就会明白了。 9 楼 JamesQian 2012-07-02   通过dynamic proxy 可以实现对其权限动态的处理,不错 10 楼 Link028 2012-07-16   是我没表达清楚?还是你没看清楚?
答非所问。

热点排行