JDK动态代理
常用的代理模式有,jdk动态代理s和CGLIB动态代理模式,JDK动态代理是java.lang.reflect.*包提供的方式,它必须提供一个接口才能产生代理对象。
下面讲解jdk动态代理,如下图:
购买房产,购买者通过代理的 销售公司 去购买 制造商 制造的房子
下面看一个案例:
第一步,先定义一个接口:第二步,实现该接口:
第三步,创建代理类,实现InvocationHandler接口,实现invoke方法,参数解析如下:
验证:
由此可以发现,在执行真实的方法前后,我们还可以添加其他逻辑,jdk动态代理必须实现java.lang.reflect.InvocationHandler类,由此可见,购买者首先面对的是销售部!代理模式可以增加了对实际访问对象的扩展。