Java Dynamic Proxy
来源:互联网 发布:js ajax实例 编辑:程序博客网 时间:2024/06/06 03:09
代理模式
代理模式的三个角色:
1. 抽象主题角色:声明真实主题和代理主题的共同接口
2. 代理主题:含有对真是主题的引用,可在任何时候操作真实主题
3. 真是主题:实现逻辑的类
类图如下:
图1
Java 动态代理
从JDK1.3开始,Java就引入了动态代理的概念。动态代理(Dynamic Proxy)可以帮助你减少代码行数,真正提高代码的可复用度。
类图如下:
图2
动态代理和普通的代理模式的区别,就是动态代理中的代理类是由java.lang.reflect.Proxy类在运行期时根据接口定义,采用Java反射功能动态生成的(图2的匿名实现类)。和java.lang.reflect.InvocationHandler结合,可以加强现有类的方法实现。如图2,图中的自定义Handler实现InvocationHandler接口,自定义Handler实例化时,将实现类传入自定义Handler对象。自定义Handler需要实现invoke方法,该方法可以使用Java反射调用实现类的实现的方法,同时当然可以实现其他功能,例如在调用实现类方法前后加入Log。而Proxy类根据Handler和需要代理的接口动态生成一个接口实现类的对象。当用户调用这个动态生成的实现类时,实际上是调用了自定义Handler的invoke方法。
下面是使用动态代理的步骤:
1. Client向Proxy请求一个具有某个功能的实例;
2. Proxy根据Subject,以自定义Handler创建一个匿名内部类,并返回给Client;
3. Client获取该匿名内部类的引用,调用在Subject接口种定义的方法;
4. 匿名内部类将对方法的调用转换为对自定义Handler中invoke方法的调用
5. invoke方法根据一些规则做处理,如记录log,然后调用SubjectImpl中的方法
参考:
http://blog.csdn.net/tyrone1979/archive/2006/09/16/1232020.aspx
- Java Dynamic Proxy
- JAVA Dynamic Proxy
- Java Dynamic Proxy
- Java Dynamic Proxy
- JAVA Dynamic Proxy
- java 动态代理Dynamic proxy
- java dynamic proxy 动态代理
- Java动态代理(Java Dynamic Proxy)
- java 动态代理 [Java Dynamic Proxy]
- Dynamic Proxy
- Dynamic Proxy
- dynamic proxy
- dynamic proxy
- Dynamic Proxy
- Dynamic Proxy在Java RMI中的应用
- 动态代理(Dynamic Proxy)Java Servlet
- java中的动态代理-Dynamic Proxy
- Dynamic Proxy在Java RMI中的应用
- 关于.net2.0中Webconfig中连接串的加密
- 图片滚动代码
- asp.net中XML文件作为中间件进行数据交换功能的实现(c#,sql2000)
- JAVA四种基本排序的总结
- 关于网站浮动图片代码
- Java Dynamic Proxy
- 早上醒来,下着大雨。。。
- 貼圖 filtering 與 MIP map 簡介
- ASP.NET中Session的状态保持方式
- 現在的漢化版軟件,我是真不敢用呀...
- VS2005自带个人网站学习工具~研究 (1)
- ==和equals方法
- Z-Buffer 与 W-Buffer
- CALL BACK