zoukankan      html  css  js  c++  java
  • 大话设计模式读书笔记--8.外观模式

    外观模式的用意是为子系统提供一个集中化和简化的沟通渠道,而不是向子系统加入新的行为

    生活中的例子:

    一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同时控制上述所有电器设备,电源总开关即为该系统的外观模式设计

    定义

    定义: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这一接口使得这一子系统更加容易使用

    结构图

    Facade: 是模式的核心,指导所有子系统的功能, 可根据客户端的需求定制功能组合

    SubSystemOne: 实现子系统的功能

    代码实现

    场景: 新手理财买基金,  通过基金经理人进行投资,而新手无须关心基金经理人具体的投资

    场景分析: 新手只要关系基金的涨跌, 而无须关心基金经理人具体的投资行为

    点击下载代码

    优缺点及使用场景

    优点:

     1.减少客户端处理的对象数目
     2.对客户端屏蔽了子系统, 实现了解耦合

    缺点: 增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开闭原则”。

    使用场景:

    1.在设计初期,应该有意识的将不同的两个层分离,比如经典的mvc架构
    2.子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类,使用起来困难, 增加外观模式可以提供简单的接口,减少依赖
    3.一个大型系统非常难以维护和扩展,但是新的需求必须依赖其中部分功能,可以提供一个外观Facade类,让新系统与Facade对象交互

    在对系统使用外观模式后,达到的效果如下图

  • 相关阅读:
    Linux的命令技巧
    MAC地址表、ARP缓存表以及路由表
    边缘触发(Edge Trigger)和条件触发(Level Trigger)
    vue-router跳转页面
    正则表达式(简单易懂篇)
    Markdown快速使用指南
    WEB前端资源集(二)
    WEB前端资源集(一)
    js判断移动端与pc端
    js原声快速实现选项卡
  • 原文地址:https://www.cnblogs.com/liuconglin/p/6417486.html
Copyright © 2011-2022 走看看