【注意】最后更新于 January 16, 2018,文中内容可能已过时,请谨慎使用。
本片文章是java设计模式的外观模式。
facade,外观模式。咋一看,不是很明白什么意思。
记住外观,什么是外观?就是我不知道里面的是什么,就只需要会外观就好了。
那就很容易了。
我之前做fabric测试(论坛有),需要首先把以前乱七八糟的容器都关了,然后启动需要用的镜像,检查下状态,工作了才能进行下一步。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
package top.txiner.facade;
/**
* @author : hundred
* time: 18-1-16
* website : http://txiner.top
* 懵懂的小白
*/
public interface Docker {
void clear();
void start();
void check();
void work();
}
|
指令也都不复杂,但是每天都要敲一遍很累啊。真的是不胜其烦。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public class DockerImpl implements Docker {
@Override
public void clear() {
System.out.println("clear old containers");
}
@Override
public void start() {
System.out.println("Start relevant containers");
}
@Override
public void check() {
System.out.println("check working status");
}
@Override
public void work() {
System.out.println("docker works");
}
}
|
如果我有个助手就好了,我给他说,帮我启动docker,它就自动把这些流程启动了。我不用管它是怎么做的,具体的流程,只要工作了就好了。
1
2
3
4
5
6
7
8
9
10
11
|
public class Assistant {
private Docker docker=new DockerImpl();
public void start(){
docker.clear();
docker.start();
docker.check();
docker.work();
}
}
|
好了,智能助手创建好了。我们启动吧!
1
2
3
4
5
6
|
public class Me {
public static void main(String[] args) {
Assistant siri=new Assistant();
siri.start();
}
}
|
好啦,问题解决了!
.................分割线..................
我在看这个的时候,突然跟代理模式有点混淆了。
实际这两者是不一样的。这个是屏蔽内在的细节,而代理模式是你的每个细节可以由别人帮忙完成。
大家可以看下我的代理模式的文章,进行对比下。