代理模式
代理模式(Proxy)主要的就是一个公共接口、一个具体的类、一个代理类。代理类持有具体类的实例,代为执行具体类的实例方法;
静态代理
静态代理在使用时,需要定义接口或者父类,被代理的对象与代理的对象一起实现共同的接口或者继承相 同的父类
静态代理实例:
定义一个公共的接口
目标对象
实现接口
代理对象
与目标对象实现同一个接口
Main方法
静态代理总结:
可以做到不修改目标对象的功能前提下,对目标对象进行功能进行扩展
缺点:
因为代理对象与目标对象要实现同一接口 所以会有很多的代理类,类太多的话 一旦接口增加方法, 目标对象和代理对象都需要维护(会增加代码 所以就有了动态代理);
动态代理
动态代理的特点:
1.代理对象不需要实现接口;
2.代理对象也要生成 是利用JDK的API 动态的在内存中构建对象(需要指定创建代理对象/目标 对象实现的接口的类型);
3.动态代理也叫做:JDK代理,接口代理
动态代理Main方法
动态代理总结:
代理对象不需要实现接口 但目标对象必须要实现接口 否则不能用动态代理;