静态代理
- 静态代理:静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同的父类。
静态代理总结
- 优点:不修改目标对象的功能前提下,对目标功能进行扩展。
- 缺点:因为代理对象需要与䯮对象实现一样的接口,所以会有很多代理类被创建,类太多。同时,一旦接口增加方法,目标对象与代理对象都要维护,增加维护成本。
动态代理
- 动态代理:代理类在程序运行时创建的代理方式被称为动态代理。
- 这种情况下,代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”,动态生成的。
动态代理VS静态代理:
- 静态代理类和委托类实现了相同的接口,代理类通过委托类实现了相同的方法。这样就出现了大量的代码重复。
- 静态代理对象只服务于一种类型的对象,如果要服务多类型的对象。势必要为每一种对象进行代理,静态代理在程序规模稍大时就无法胜任了。