动态代理
自从JDK的版本到1.3以后,java语言通过java.lang.reflect库中,提供了三个类来直接支持代理模式。
分别是:Proxy,InvocoationHandler和Method。
Proxy类使得设计师能够在运行时间创建代理对象
当系统有了一个代理对象后,对源对象的方法调用会首先被分派给一个调用处理器(InvocationHandler)//接口
InvocationHandler接口中有一个invoke()方法
程序可以在调用处理器的invoke方法中截获这个调用,进行额外的操作
创建动态代理对象的步骤:
1.指明一系列的接口来创建一个代理对象
2.创建一个调用处理器(InvocationHandler)对象
3.将这个代理指定为某个其他对象的代理对象
4.在调用处理器的invoke方法中采取代理,一方面将调用传递给真实对象,另一方面执行各种需要做的操作。
电脑代理商
抽象主题角色:SaleComputer
真实主题角色:ComputerMaker
代理主题角色:ComputerProxy
Java动态代理的过程:ProxyFunction(我们定义的一个类,由这个类来具体的完成代理过程)
源代码
http://www.blogjava.net/Files/vjame/ProxyDemo02.rar