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

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!

你可能感兴趣的:(设计思想,-,设计模式)