门面(Facade)模式

 

Facade模式也叫外观模式

 

在《设计模式》一书中他是这样叙述的:

    为子系统中的一组接口提供一个统一的接口。Facade模式定义了一个更高的接口,使子系统更加容易使用。Facade模式的关键特征

 

意图:希望简化原有系统的使用方法,需要定义自己的接口。

问题:只需要使用某个复杂系统的子集,或者,需要以一种特殊的方式与系统交互。

解决方案:Facade为原有系统的客户提供了一个新的接口。

参与者与协作者:为客户提供的一个简化的接口,使系统更容易使用。

效果:Facade模式简化了对所需子系统的使用过程。但是,由于Facade并不完整,因此客户可能无法使用完整的功能。

实现:定义一个或多个具备所需接口的新类。

      让新的类使用原有的系统。

 

设计模式的通用结构图:

 

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

 

举例说明:

假设现在有一头大象,你要通过一个系统把他放到冰箱里,该系统有三步:

1、打开冰箱门

2、放大象到冰箱里

3、关上冰箱门

现在有A,B用户使用该系统,如图:

 

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

再看应用了设计模式之后:

 

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

 

 

小结

    Facade模式可以应用于:

    1、不需要使用一个复杂系统的所有功能,而且可以创建一个新的类。

    2、希望封装或者隐藏原来的系统。

    3、希望使用原来系统的功能,而且还希望增加一些新的功能。

    4、编写新类的成本小于所有人学会或者未来维护原系统上所需的成本。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值