设计模式:学习笔记(11)——外观模式
设计模式:学习笔记(11)——外观模式
外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。
这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
例子
客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。
或者理解下面这个例子:
- 电脑整机是CUP、内存、硬盘的外观。有了外观以后,启动电脑和关闭电脑都简化了。
- 启动电脑(按一下电源键):启动CPU、启动内存、启动硬盘
- 关闭电脑(按一下电源键):关闭硬盘、关闭内存、关闭CPU
易混淆的模式
装饰者:不改变接口,但加入职责。
适配器:将一个接口转换成另一个接口。
外观:让接口更简单。
相关类图
实例分析
首先假设看病有四个流程
class guahao{
public void doSomething(){
//.....
}
}
class menzheng{
public void doSomething(){
//.....
}
}
class huajia{
public void doSomething(){
//.....
}
}
class quyao{
public void doSomething(){
//.....
}
}
引入外观模式前,我们需要自己去分别做每一步,并且非常麻烦,我们引入接待员;
class jiedai{
guahao gh;
menzheng mz;
huajia hj;
quyao qy;
public void kanbing{
gh.doSomething();
mz.doSomething();
hj.doSomething();
qy.doSomething();
}
}
这样我们再看病,就简单的很了
public static void main(String[] args) {
jiedai jd = new jiedai();
jd.kanbing();
}