历史潮流浩浩荡荡,顺之者昌,逆之则亡。——孙中山

Java设计模式之动态代理JDK版

JAVA 徐 承恩 176℃

代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。

简言之,代理模式就是设置一个中间代理来控制访问原目标对象,以达到增强原对象的功能和简化访问方式。

代理模式UML类图

动态代理JDK版

动态代理利用了JDK标准库API,动态地在内存中构建代理对象,从而实现对目标对象的代理功能。动态代理又被称为JDK代理或接口代理。

静态代理与动态代理的区别主要在:

1、静态代理在编译时就已经实现,编译完成后代理类是一个实际的class文件

2、动态代理是在运行时动态生成的,即编译完成后没有实际的class文件,而是在运行时动态生成类字节码,并加载到JVM中

特点:
动态代理对象不需要实现接口,但是要求目标对象必须实现接口,否则不能使用动态代理。

JDK中生成代理对象主要涉及的类

java.lang.reflect.Proxy

java.lang.reflect.InvocationHandler

动态代理JDK版代码示例

AccountDao接口类

AccountDaoImpl接口实现类

ProxyFactory代理工厂类

JDKDynamicProxyTest测试类

控制台输出

转载请注明:徐叔科技 » Java设计模式之动态代理JDK版

喜欢 (0)