代理模式
需求场景 我们引用了开源jar包,需要扩展。我们又不能直接改jar包,违反了开闭原则。通常我们使用代理模式,在中间加一层。软件行业有句话:”如果解决不了,就加一层“。 静态代理 步骤 第三方jar包中的目标类(即被代理类); 我们创建一个代理类,和目标类实现同样的接口,在内部调用目标类。 在代码中使用。 /** * 第三方jar包中的:目标类接口 * * @author lsh by 2020/4/29 */ public interface DoSthService { void doSth(); } /** * 第三方jar包中的:目标类实现类 * * @author lsh by 2020/4/29 */ public class DoSthServiceImpl implements DoSthService { @Override public void doSth() { System.out.println("被代理类 do sth"); } } /** * 静态代理类 * * @author lsh by 2020/4/29 */ public class DoSthServiceImplProxy implements DoSthService { @Override public void doSth() { // 加前置逻辑 System.out