结构型 - 外观模式(Facade Pattern)
Salted Fish 2022/1/27 结构型
设计模式 - 结构型 - 外观(Facade),它提供了一个统一的接口,用来访问子系统中的一群接口,从而让子系统更容易使用
# 意图
提供了一个统一的接口,用来访问子系统中的一群接口,从而让子系统更容易使用。
# 类图

# 实现
观看电影需要操作很多电器,使用外观模式实现一键看电影功能。
public class SubSystem {
public void turnOnTV() {
System.out.println("turnOnTV()");
}
public void setCD(String cd) {
System.out.println("setCD( " + cd + " )");
}
public void starWatching(){
System.out.println("starWatching()");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
public class Facade {
private SubSystem subSystem = new SubSystem();
public void watchMovie() {
subSystem.turnOnTV();
subSystem.setCD("a movie");
subSystem.starWatching();
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
public class Client {
public static void main(String[] args) {
Facade facade = new Facade();
facade.watchMovie();
}
}
1
2
3
4
5
6
2
3
4
5
6
# 设计原则
最少知识原则: 只和你的密友谈话。也就是说客户对象所需要交互的对象应当尽可能少。