结构型设计模式.外观模式

一、概念

其目的在于降低系统的复杂程度!

1.1、定义

又叫门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口,让子系统更容易使用。

结构型设计模式.外观模式_第1张图片
Fecade.png

  • 已经存在的子系统群或者子模块:SubSystemA 、SubSystemB、SubSystemC...
  • Facade,装饰类:核心类,负责向客户提供“门面接口”
1.2、解决的问题
结构型设计模式.外观模式_第2张图片
外观模式.jpg
  • 问题分析:如图,实际系统已经有很多旧系统或者模块,开发中需要访问这些子系统或者模块,这会造成调用关系复杂,调试开发困难,难以维护等问题。
  • 模式的解决思路:抽离单独层,外观类Facade,专门负责各个子系统或者模块调用,一次来降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。

二、模式的应用和优缺点

2.1、应用场景
  • 实例:
    1、医院看病导诊台:去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便。
    2、windows的窗口系统,就是外观模式的例子。如关闭窗口功能,可能设计数据管理对象保存数据,窗口管理对象擦除界面,内存管理对象释放内存,这些对象都很复杂,但是通过外观模式,调用者只需要window.close()。
2.2、优缺点
  • 优点:
    1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。

  • 缺点:
    不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。

你可能感兴趣的:(结构型设计模式.外观模式)