设计模式(7):外观模式

一、概念

1、定义:又叫门面模式,外观模式提供了一个统一的接口,用来访问子系统中一群接口的操作,这样使得子系统更容易使用,即使子系统发生变化,但只要外观不变,就不会影响到客户端代码。

2、类型:结构型

3、适用场景

  • 子系统越来越复杂,增加外观模式提供简单的接口
  • 构建多层系统结构,利用外观对象作为每层的入口,简化了层间调用

4、优点

  • 简化调用过程,无需深入了解子系统,防止带来风险(某个功能集成到一起就行
  • 减少系统的依赖,松散耦合,让内部模块更容易扩展和维护
  • 帮助我们更好的划分访问的层次
  • 符合迪米特法则,客户端只要和外观交互就行

5、缺点

  • 增加子系统时容易引入风险
  • 不符合开闭原则

6、区别

  • 和适配器模式的区别
    两者的差异不在于它们包装了几个类,而在于它们的意图,适配器是改变接口来符合客户的期望,外观的意图是提供给子系统一个简化的接口。外观模式可以提供多个外观,适配器也可以让多个不同的类来适配同一个接口。
  • 装饰者模式:不改变接口。加入责任
  • 适配器模式:将一个接口转换成另一个接口
  • 外观模式:让接口更简单,应用层不要和子系统进行交互

7、UML
设计模式(7):外观模式