什么是面向接口编程?动态代理又是怎么一回事?

目录

JDK面向接口编程

动态代理的概念

JDK动态代理

JDK动态代理用到的类和接口

  1)Proxy类

  2)Method类

  3)InvocationHandler接口

 CGLib动态代理


JDK面向接口编程

类中的成员变量设计为接口,方法的形参设计为接口,方法的返回值设计为接口,调用时接口指向实现类。

个人理解为一个插板,插板在现实生活中有两种一种是三头、一种是双头,打比方有三头插口,冰箱是三头插头,电脑的插头也是三头,这两个都可使用。冰箱和电脑都可以插在这个三孔插板上,冰箱、电脑都是电器(目标对象)我们的插板只有一个三孔插口,

 this.是调用类中成员变量(第一个target,后面的this.target是指调用前面的那个target)agent是代理的功能

接口指向实现类,实现类是什么,用到的就是什么,那个目标对象来,就是那个目标对象使用。

这就是用接口与实现灵活的切换

 父类的引用指向子类实现的时候,最终得到的结果应该是子类。也就是说子类重写了父类的方法后,看到的也只能是重写后的方法。(多态)

接口其实就是另外一种意义的父类,所以调用后都是重写后的内容。

动态代理的概念

业务功能需要灵活切换,所以需要动态代理。

动态代理的代理对象在程序运行的过程中动态在内存构建,可以灵活的进行业务功能切换。

JDK动态代理


  1)目标对象必须实现业务接口
  2)JDK代理对象不需要实现业务接口
  3)JDK动态代理的对象在程序运行前不存在.在程序运行时动态的在内存中构建
  4)JDK动态代理灵活的进行业务功能的切换
  5)本类中的方法(非接口中的方法)不能被代理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值