Java设计模式之代理模式2-动态代理(jdk实现)
2018-03-19 15:08
836 查看
这篇是接着上一篇继续介绍java设计模式之代理模式。下面讲解的是jdk实现动态代理。
1.)首先我们要声明一个动态代理类,实现InvocationHandler接口
package com.zhong.pattern.proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; /** * 演员动态代理类 * @author admin * */ public class DynamicActorProxy implements InvocationHandler{ private Object target;// 被代理的对象 public DynamicActorProxy(Object target) { this.target = target; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object result = method.invoke(this.target, args); return result; } }
2.)具体实现
package com.zhong.pattern.proxy;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
public class Test {
public static void main(String[] args) {
// 我们要代理的真实对象
Actor actor = new Actor("刘德华");// 歌星--被代理对象
// 2.jdk动态代理
// 我们要代理哪个真实对象,就将该对象传进去,最后是通过该真实对象来调用其方法的
InvocationHandler handler = new DynamicActorProxy(actor);
Play play = (Play) Proxy.newProxyInstance(handler.getClass().getClassLoader(), actor.getClass().getInterfaces(),
handler);
play.sing("笨小孩");
}
}
3.)动态代理好处
使用JDk动态代理机制的好处:1、减少编程的工作量:假如需要实现多种代理处理逻辑,只要写多个代理处理器就可以了,无需每种方式都写一个代理类。2、系统扩展性和维护性增强,程序修改起来也方便多了(一般只要改代理处理器类就行了)。相关文章推荐
- 设计模式之动态代理(Java的JDK动态代理实现)
- JAVA设计模式之【代理模式】二(jdk动态代理)
- java与设计模式(五)-jdk动态代理模式
- Java 代理模式-JDK动态代理-实现对请求中文乱码的处理
- 设计模式--JDK动态代理的实现与原理解析(2)
- Java动态代理模式jdk和cglib的2种实现以及二者的区别(AOP面向切面的前奏)
- Java设计模式--代理模式与JDK动态代理,cglib动态代理
- 设计模式(2)--java动态代理及jdk和cglib的区别
- 设计模式之动态代理的代码实现(Java)
- Java代理设计模式(Proxy)的四种具体实现:静态代理和动态代理
- 0104 Java设计模式03-动态代理(实战篇JDK和cglib)【进阶】
- JAVA设计模式之动态代理(JDK)
- java 代理模式,JDK动态代理,SpringAOP的实现
- 设计模式-java实现动态代理
- 设计模式:用Java动态代理实现AOP
- 设计模式之动态代理 jdk实现
- 设计模式--JDK动态代理的实现与原理解析(1)
- Java动态代理模式jdk和cglib的2种实现以及二者的区别(AOP面向切面的前奏)
- 关于java中jdk中接口动态代理模式Proxy的剖析
- 代理模式之Java动态代理实现方法