外观设计模式比较简单,我们平时就会用的比较多。
本质就是为了上层更加方便的使用某个系统,提供一个中间的、总结性的、相对较统一的中间层。使得系统更加易用(上层只需要使用中间层调用系统的功能就好)。
为啥叫外观模式:外观是指低一层(或者被调用层)系统的抽象出来的,对外的接口。外界其实只是使用这个接口就可以使用整个系统,也就是外界只看得到中间这层,中间层表达了被使用系统的外观。
外观模式中最重要的角色:中间层(中介、接口)
使用场景:
- 豆浆机
- 买房子中介
- 我们常用的XXXTools、XXXService、XXXAssist、XXXUtils类
- api
- 两个模块之间的交互(抽象出来一些接口)
优点:
- 减少系统相互依赖(解耦调用者、被调用者)。
- 提高了安全性(对外只暴露了中介)
- 调用方便
缺点:
修改比较麻烦,更改系统功能后,中介也可能要修改。不符合开闭原则(一般只能靠修改完成需求,不做扩展)。知道最少原则程度较高
和其他模式的关系:
有时中介会使用单例模式。