模式简介:
意图--一个一致的高层接口
Facade模式的意图:为了子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
Facade模式:关键特征
意图 希望简化现有系统的使用方法。你需要定义自己的接口。
问题 只需要使用一个复杂系统的一个子集。或者,需要用一种特殊的方式与系统交互。
解决方案 Facade向客户展现使用现有系统的一个新的接口。
参与者与 向客户展现一个定制的接口,让客户更容易地使用现有系统。
协作者
效果 Facade模式简化了对所需子系统的使用。但是,由于Facade并不完整,因此某些功能对于客户可能是不可用的
实现 定义一个(或一组)新的类来提供所需的接口
*让新的类使用现有的系统
1)Facade模式的变体:减少客户必须处理的对象数量
2)Facade模式的变体:用新的程序对现有功能进行补充
3)Facade模式的变体:一个“封装”层
几个需要包装原有系统的理由:
*跟踪对系统的使用----强迫所有客户通过Facade使用原有系统,然后就可以很容易地监控对系统的使用。
*改变系统----我可能需要在未来改变我们的系统。如果把原有系统设计成Facade类的私有成员,那么只需作最少的工作就能切断
一个新的系统。当然,我仍然需要做一些重要的工作,但至少我只要改变一个地方(Facade类)的代码。