代理模式
描述:引用了中间层,来控制对象
作用:用于管理对方访问,在之前和之后加入操作逻辑,和权限控制。
/** * 主控制类 * */ public class RealSubject implements Subject{ @Override public void doWork() { System.out.println("hello world~~"); } } /** * 代理类 * */ public class RealProxySubject implements Subject{ RealSubject realSubject; public RealProxySubject() { try { this.realSubject = (RealSubject)this.getClass().getClassLoader().loadClass("net.xdclass.model.RealSubject").newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public void getConnection(){ System.out.println("确认连接"); } public void getLog(){ System.out.println("打印日志"); } @Override public void doWork() { getConnection(); realSubject.doWork(); getLog(); } } public interface Subject { void doWork(); } /** * 代理模式 * */ public class ProxyPattern { public static void main(String[] args) { new RealProxySubject().doWork(); } }