1、 Facade模式简介
Façade在建筑领域的意思是:(掩饰真相的)门面,也就意味着,如果你想探究更细节的真相就需要经过Façade。
《设计模式》一书中对Façade模式的意图是这样叙述的:
为子系统中的一组接口提供一个统一接口。(提供一个门面,掩饰真相。)Façade模式定义了一个更高层次的接口,使子系统更加容易使用。
2、 Facade模式关键特征
意图
希望简化原有系统的使用方式。需要定义自己的接口
问题
只需要使用某个复杂子系统的子集,或者,需要以一种特殊的方式与子系统交互
解决方案
Façade为原有系统的客户提供了一个新的接口
参与者(接口)与协作者(子系统)
为客户提供简化接口,使子系统更容易使用
效果
Façade模式简化了对所需子系统的使用过程。但是,由于Façade并不完整,因此客户可能无法使用某些功能。
实现
1、定义一个(或多个)具有所需接口的新类
2、让新的类使用原有的子系统
3、 Façade模式的应用
1) 不需要使用一个复杂子系统的所有功能,而且可以创建一个新的类,包含访问系统的所有规则。如果只需要使用系统的部分功能(这是通常的情况),那么你为新类所创建的API将比原系统的API简单得多。
2) 希望封装或者隐藏原系统。
3) 希望使用原系统的功能,而且还希望增加一些新的功能。
4) 编写新类的成本小于所有人学会使用或者未来维护原系统上所需的成本。