Java 代理
代理模式 为其他对象提供一种代理,以控制对这个对象的访问。 代理对象在客户端和目标对象之间起到中介的作用。
作用:
某些情况下,一个客户类不想或者不能直接引用一个委托对象, 而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征时代理类和委托类实现相同的接口。
代理类除了客户类和委托类的中介之外, 还可以通过代理类增加额外的功能来拓展委托类的功能, 这样只需要修改代理类而不要修改委托类,符合开闭原则。
静态代理:静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同接口或者时继承相同父类
优点:不修改目标对象的功能前提下, 对目标功能进行拓展;
缺点: 因为代理对象需要与目标对象实现一样的接口,所以会有很多代理类被创建,类太多。同时,一旦接口增加方法,目标对象和代理对象都要维护,增加维护成本;