zoukankan      html  css  js  c++  java
  • Facade设计模式

    Facade模式也叫外观模式

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

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

    设计模式的通用结构图:


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

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


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


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

    小结
        Facade模式可以应用于:
        1、不需要使用一个复杂系统的所有功能,而且可以创建一个新的类。
        2、希望封装或者隐藏原来的系统。
        3、希望使用原来系统的功能,而且还希望增加一些新的功能。
        4、编写新类的成本小于所有人学会或者未来维护原系统上所需的成本。


       -----设计模式解析  Facade模式

  • 相关阅读:
    今日头条Go建千亿级微服务的实践
    Apache JServ Protocol
    tomcat servlet JSP common gateway interface 公共网关接口
    pollable event-driven Flume source
    kernel.panic
    Linux查找含有某字符串的所有文件
    深入理解Linux修改hostname
    px em rem
    这跟他们的前辈在原生应用程序或印刷出版物中做的设计或多或少有点类似。
    字符串等长切分 视频字幕换行
  • 原文地址:https://www.cnblogs.com/ringwang/p/992613.html
Copyright © 2011-2022 走看看