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();
}
private void USBHead(){
System.out.println("USB Connection Head!");
}
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!