• 前端设计模式之【外观模式】


    前言

    hello world欢迎来到前端的新世界


    😜当前文章系列专栏:前端设计模式
    🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢大家指出)🌹
    💖感谢大家支持!您的观看就是作者创作的动力

    介绍

    外观模式是最常见的设计模式之一,它为子系统中的一组接口提供一个统一的高层接口,使子系统更容易使用。简而言之外观设计模式就是把多个子系统中复杂逻辑进行抽象,从而提供一个更统一、更简洁、更易用的API。很多我们常用的框架和库基本都遵循了外观设计模式,比如JQuery就把复杂的原生DOM操作进行了抽象和封装,并消除了浏览器之间的兼容问题,从而提供了一个更高级更易用的版本。其实在平时工作中我们也会经常用到外观模式进行开发,只是我们不自知而已

    兼容浏览器事件绑定

    let addMyEvent = function (el, ev, fn) {
        if (el.addEventListener) {
            el.addEventListener(ev, fn, false)
        } else if (el.attachEvent) {
            el.attachEvent('on' + ev, fn)
        } else {
            el['on' + ev] = fn
        }
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    封装接口

    let myEvent = {
        // ...
        stop: e => {
            e.stopPropagation();
            e.preventDefault();
        }
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    场景

    • 设计初期,应该要有意识地将不同的两个层分离,比如经典的三层结构,在数据访问层和业务逻辑层、业务逻辑层和表示层之间建立外观Facade

    • 在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观Facade可以提供一个简单的接口,减少他们之间的依赖。

    • 在维护一个遗留的大型系统时,可能这个系统已经很难维护了,这时候 使用外观Facade也是非常合适的,为系系统开发一个外观Facade类,为设计粗糙和高度复杂的遗留代码提供比较清晰的接口,让新系统和Facade对象交互,Facade与遗留代码交互所有的复杂工作。

    优缺点

    优点

    • 减少系统相互依赖。
    • 提高灵活性。
    • 提高了安全性

    缺点

    不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。

    后言

    创作不易,要是本文章对广大读者有那么一点点帮助 不妨三连支持一下,您的鼓励就是博主创作的动力

  • 相关阅读:
    Python爬虫实战第三例【三】【上】
    Qt开发技术:Q3D图表开发笔记(四):Q3DSurface三维曲面图颜色样式详解、Demo以及代码详解
    LAMP平台搭建-Centos6
    VUE Date类型前端判断动态校验
    Android四大组件之BroadcastReceiver(四)
    尚硅谷大数据hadoop教程_HDFS
    【HDLBits 刷题】Verilog Language(4)Procedures 和 More Verilog Features 部分
    手把手带你体验一场属于Linux的学习之旅
    STC-B学习板蜂鸣器播放音乐2.0
    LeetCode09——回文数
  • 原文地址:https://blog.csdn.net/weixin_68537796/article/details/134424091