一、 Facade(外观)模式
为了子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
Façade模式:关键特征
意图
希望简化现有系统的使用方法。你需要定义自己的接口
问题
只需要使用一个复杂系统的一个子集。或者,需要用一种特殊的方式与系统交互。
解决方案
Façade向客户展现使用现有系统的一个新的接口
参与者和协作者
向客户展现一个定制的接口,让客户更容易地使用现有系统
效果
Façade模式简化了对所需子系统的使用。但是,由于Façade并不完整,因此某些功能对于客户是不可用的
实现
Ø 定义一个(或一组)新的类来提供所需的接口
Ø 让新的类使用现有的系统
图1.1
Façade模式:实例1
如图1.1,original_system有多个函数,client只需要用到其中的funA
Façade向client展现使用original_system的一个新的接口fun
Façade模式简化了对所需子系统的使用。但是,由于Façade并不完整,因此funB、funC对于client是不可用的
Ø 定义一个新的类Facade来提供所需的接口
Ø 让新的类Facade使用现有的系统original_system
如图1.2
图
Façade模式:实例2
如图1.3,有多个类,客户(main函数)只需要使用顺序使用他们
Façade向客户展现使用多个类的一个新的接口fun
Façade模式简化了对所需子系统的使用。
Ø 让新的类Facade使用现有的多个类
如图1.4
图1.3
图1.4