目录
JDK面向接口编程
类中的成员变量设计为接口,方法的形参设计为接口,方法的返回值设计为接口,调用时接口指向实现类。
个人理解为一个插板,插板在现实生活中有两种一种是三头、一种是双头,打比方有三头插口,冰箱是三头插头,电脑的插头也是三头,这两个都可使用。冰箱和电脑都可以插在这个三孔插板上,冰箱、电脑都是电器(目标对象)我们的插板只有一个三孔插口,
this.是调用类中成员变量(第一个target,后面的this.target是指调用前面的那个target)agent是代理的功能
接口指向实现类,实现类是什么,用到的就是什么,那个目标对象来,就是那个目标对象使用。
这就是用接口与实现灵活的切换
父类的引用指向子类实现的时候,最终得到的结果应该是子类。也就是说子类重写了父类的方法后,看到的也只能是重写后的方法。(多态)
接口其实就是另外一种意义的父类,所以调用后都是重写后的内容。
动态代理的概念
业务功能需要灵活切换,所以需要动态代理。
动态代理的代理对象在程序运行的过程中动态在内存构建,可以灵活的进行业务功能切换。
JDK动态代理
1)目标对象必须实现业务接口
2)JDK代理对象不需要实现业务接口
3)JDK动态代理的对象在程序运行前不存在.在程序运行时动态的在内存中构建
4)JDK动态代理灵活的进行业务功能的切换
5)本类中的方法(非接口中的方法)不能被代理