代理模式&动态代理
动态代理的用途: 动态代理的用途与装饰模式很相似,就是为了对某个对象进行增强。所有使用装饰者模式的案例都可以使用动态代理来替换,动态代理可以更好的解耦合 增强有3个手段 1. 继承 被增强对象不能变 增强内容不能变 2. 装饰者模式 被增强对象可变 但增强内容不能变 3. 动态代理 被增强对象可变 增强内容也可变 如何实现动态代理? 定义一个接口Interface, 被增强的对象的类都会实现这个接口 public interface Interface { public void fun(); } 实现这个Interface接口: 而这个InterfaceImpl就是动态代理中被增强的内容 public class InterfaceImpl implements Interface { @Override public void fun() { System.out.println("目标方法调用"); } } 定义一个接口Advice, 增强内容的类都会实现这个接口 这个接口有两个未实现的方法: before()前置增强的方法 after()后置增强的方法 public interface Advice { public void before(); public void after(); } 而实现了Advice接口的对象就是动态代理中增强内容 JavaAPI: java