设计模式---接口隔离模式之门面模式(Façade) 外观模式 Facade Pattern

前提:接口隔离模式

在组建构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接接口(稳定的),来隔离本来相互紧密关联的接口是一种常见的解决方案。

典型模式:

门面模式:Façade,
代理模式:Proxy,
适配器模式:Adapter,
中介者模式:Mediator

一:门面模式(外观模式)

推文:外观模式 Facade Pattern

(一)概念

Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。
Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。
为子系统中统一一套接口

(二)动机

上述方案A的问题在于组件的客户和组件中的各种复杂的子系统有了过多的耦合,随着外部客户程序和子系统的演化,这种过多的耦合面临很多变化的挑战。
如何简化外部客户程序和系统间的交互接口?如何将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦。

(三)系统间耦合的复杂度

(四)模式定义

为子系统中的一组接口提供一个一致(稳定)的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)。 
                                                                                  --《设计模式》Gof

(五)结构(没有特定的模式)

不同场景,变化相差较大

(六)要点总结: (将子系统的变化限制在一个范围内)

1.从客户程序的角度来看, Façade 模式简化了整个组件系统的接口。对于内部和外部客户程序来说, Façade 模式实现了一种解耦的效果——即内部的子系统的任何变化不会影响到 Façade 接口的变化。

2.Façade 设计模式更注重从架构的层次去看待整个系统,而不是单个类的层次。Façade 很多时候更是一种架构设计模式。

3.Façade 设计模式并非是一个集装箱,可以任意的放入任何多个对象。Facade模式中组件的内部应该是“相互耦合关系比较大的一系列组件”,而不是简单的功能集合,以便能够实现松耦合,高内聚的特性。

猜你喜欢

转载自www.cnblogs.com/ssyfj/p/9540458.html