您的位置:首页 > 其它

门面(Facade)模式 一

2009-02-07 17:44 302 查看
Facade设计模式
Facade模式也叫外观模式

在《设计模式》一书中他是这样叙述的:
为子系统中的一组接口提供一个统一的接口。Facade模式定义了一个更高的接口,使子系统更加容易使用。Facade模式的关键特征

意图:希望简化原有系统的使用方法,需要定义自己的接口。
问题:只需要使用某个复杂系统的子集,或者,需要以一种特殊的方式与系统交互。
解决方案:Facade为原有系统的客户提供了一个新的接口。
参与者与协作者:为客户提供的一个简化的接口,使系统更容易使用。
效果:Facade模式简化了对所需子系统的使用过程。但是,由于Facade并不完整,因此客户可能无法使用完整的功能。
实现:定义一个或多个具备所需接口的新类。
让新的类使用原有的系统。

设计模式的通用结构图:



其实,Facade模式还可以增加新的功能,就是在原有的系统上增加功能,还有就是可以隐藏或封装原来系统的部分功能。避免用户与复杂的系统接触,方便使用。

举例说明:
假设现在有一头大象,你要通过一个系统把他放到冰箱里,该系统有三步:
1、打开冰箱门
2、放大象到冰箱里
3、关上冰箱门
现在有A,B用户使用该系统,如图:



从上图大家可以看出,用户操作起来相当复杂,如果还有其他的功能如设置冰箱的温度等,操作起来就更复杂了。现在在该系统和用户之间增加一层。
再看应用了设计模式之后:



怎么样,是不是简单多了,既方便用户使用,又达到了系统封装,而且增加一些功能也不影响用户的使用,如果开始的架构,增加了功能则又要到用户端来调用,非常不方便。

小结
Facade模式可以应用于:
1、不需要使用一个复杂系统的所有功能,而且可以创建一个新的类。
2、希望封装或者隐藏原来的系统。
3、希望使用原来系统的功能,而且还希望增加一些新的功能。
4、编写新类的成本小于所有人学会或者未来维护原系统上所需的成本。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: