JAVA中的设计模式 - 代理模式

2019-07-14 02:06发布

class="markdown_views prism-kimbie-light">

JAVA中的设计模式 - 代理模式

#

/** * 一个古老的接口,用来连接电源 */ public interface Box { void darkRun(); } /** * 前辈编写了一个复杂的流程来实现连接电源 * 他能够正常运行 * 但是新的设备需要新的匹配 */ public class DarkBox implements Box{ @Override public void darkRun() { System.out.println("Dark Run : Get Power Success"); } } /** * 你并不是特别的熟悉以前连接电源的方式 * 但是你知道如何处理新的连接 * * 你并不想重新背起以前的锅 * 所以你创建一个代理来完成你的工作 * 既不会改变原来的逻辑,也能够完成你的工作 */ public class Proxy implements Box{ private DarkBox darkBox; public Proxy(){ super(); this.darkBox = new DarkBox(); } @Override public void darkRun() { USBHead(); darkBox.darkRun(); USBTail(); } // 你在原来的基础上,在电源连接器头部转换到通用USB接口 private void USBHead(){ System.out.println("USB Connection Head!"); } // 同样的,连接尾也切换到通用USB接口 private void USBTail(){ System.out.println("USB Connection Tail!"); } } /** * 你设计了一个连接器来测试你的接口是否正常运行 */ public class Connection { public static void main(String[] args) { Box box = new Proxy(); // 很好,你的代理能够正常运行 box.darkRun(); } } USB Connection Head! Dark Run : Get Power Success USB Connection Tail!