zoukankan      html  css  js  c++  java
  • 外观模式

    1.定义

        外观模式(Facade-Pattern):提供了一个统一的接口,用来访问子系统中的一群接口外观定义了一个高层接口,让子系统更容易使用。

    2.示例:打开教室投影仪上课

          要到教室上课,需要将灯光调暗、放下屏幕、打开投影仪、打开电脑、打开音响等步骤。若将以上任务写成类和方法的调用如下:

    1.lights.dim(10);
    
    2.screen.down();//放下屏幕
    
    3.projector.on();//打开投影仪
    
    4.computer.on();
    
    5.aduio.on();

       每次上课都要进行如此复杂的操作,非常麻烦。而且下课之后还要按照相反的步骤进行操作,有没有简便的操作方法呢?

              外观模式:通过实现一个提供更合理的接口的外观类,讲一个复杂的子系统变得更容易。

    image

       

    3.外观模式特点

    1. 要使用外观模式,需创建一个接口简化并且统一的类,用来包装系统中一个或多个复杂的类。它也是一个改变接口的类(装饰模式,适配器模式),只不过它改变接口的原因是为了简化接口,将一个或数个类的复杂的一切隐藏在背后,只显露出一个干净美好的外观。
    2. 外观模式通过实现一个提供更合理的接口的外观类,将一个复杂的子系统变得容易使用。如果您需要复杂子系统的强大威力,还是可以使用原来的复杂接口;但如果您需要的是一个方便使用的接口,就使用外观。
    3. 外观模式也允许你将客户实现从任何子系统中解耦。如,如果您想升级教室设备,采用全新的不一样的接口的组件。如果你当初的客户代码是针对外观而不是针对子系统编写的,现在您就不需要改变客户代码,只需要修改外观代码。(好处:有可能有多个客户端引用了原来的接口组件,“有可能编程者也不清楚哪些地方使用了原来的接口组件”,因此给代码更改带来了难度,增加了工作量。而采用外观模式,只需要更改外观类中的代码即可)。还有,在教室设备中,如果添加了新的设备,如DVD播放器,采用外观模式,只需要在外观类中修改即可,不用再大量复杂的客户端中去修改。

     

    从各处转载java文件
  • 相关阅读:
    解决SharePoint 文档库itemadded eventhandler导致的上传完成后,编辑页面保持报错的问题,错误信息为“该文档已经被编辑过 the file has been modified by...”
    解决SharePoint 2013 designer workflow 在发布的报错“负载平衡没有设置”The workflow files were saved but cannot be run.
    随机实例,随机值
    Spring4笔记
    struts2笔记(3)
    struts2笔记(2)
    获取文本的编码类型(from logparse)
    FileUtil(from logparser)
    DateUtil(SimpleDateFormat)
    struts2笔记
  • 原文地址:https://www.cnblogs.com/ncscherb/p/5327269.html
Copyright © 2011-2022 走看看