外观模式

Posted by 石玉军 on 2018-07-26

外观模式:外部系统与子系统的通信必须通过一个统一的对象进行

举个例子,现在结婚是不是都找婚庆公司啊,为什么呢?因为如果不找婚庆公司自己筹备的话,我们可能得自己跑去订酒店,自己去找主持人,自己去找摄像,自己去找车队。是不是太麻烦了点,而有了婚庆公司就不一样了,我可以吩咐他去找酒店,找主持人等等。。。

来看一下类图:

1

在这里Facade就相当于婚庆公司的角色,我们作为client直接调用Facade的方法,而不关心车队、酒店、主持人等是如何找到的。
代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class Car {
public void carList() {
System.out.println("-----");
}
}

public class Host {
public void married() {
System.out.println("-----");
}
}

public class Hotel {
public void party() {
System.out.println("-----");
}
}

public class Facade {
private Host host =new Host();
private Hotel hotel =new Hotel();
private Car car=new Car();

public void married(){
host.married();
}
public void carList(){
car.carList();
} public void party(){
hotel.party();
}
}

`