美文网首页
自检:前端知识清单——设计模式

自检:前端知识清单——设计模式

作者: 极奏 | 来源:发表于2019-10-02 19:12 被阅读0次

    前言

    题目来自ConardLi的blog
    写的是自己的题解,水平有限,所以仅供参考
    代码会整合在github,觉得有帮助就给个star吧~

    正文

    三、计算机基础

    设计模式

    1、熟练使用前端常用的设计模式编写代码,如单例模式、装饰器模式、代理模式等

    • 构造器模式


    • 简单工厂模式
      将共性与个性分离


    缺点:没有遵守开放封闭原则
    开放封闭原则:对拓展开放,对修改封闭。说得更准确点,软件实体(类、模块、函数)可以扩展,但是不可修改。

    • 抽象工厂模式:


    • 单例模式:
      不管我们尝试去创建多少次,它都只给你返回第一次所创建的那唯一的一个实例


    • 装饰器模式


    • 适配器模式


    • 代理模式
      Proxy
      事件代理

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>事件代理</title>
    </head>
    <body>
      <div id="father">
        <a href="#">链接1号</a>
        <a href="#">链接2号</a>
        <a href="#">链接3号</a>
        <a href="#">链接4号</a>
        <a href="#">链接5号</a>
        <a href="#">链接6号</a>
      </div>
    </body>
    </html>
    

    虚拟代理


    缓存代理


    2、发布订阅模式和观察者模式的异同以及实际应用

    观察者模式
    在观察者模式里,至少应该有两个关键角色是一定要出现的——发布者和订阅者。用面向对象的方式表达的话,那就是要有两个类。


    观察者模式,解决的其实是模块间的耦合问题,有它在,即便是两个分离的、毫不相关的模块,也可以实现数据通信。但观察者模式仅仅是减少了耦合,并没有完全地解决耦合问题——被观察者必须去维护一套观察者的集合,这些观察者必须实现统一的方法供被观察者调用,两者之间还是有着说不清、道不明的关系。

    而发布-订阅模式,则是快刀斩乱麻了——发布者完全不用感知订阅者,不用关心它怎么实现回调方法,事件的注册和触发都发生在独立于双方的第三方平台(事件总线)上。发布-订阅模式下,实现了完全地解耦。

    数据结构和算法

    相关文章

      网友评论

          本文标题:自检:前端知识清单——设计模式

          本文链接:https://www.haomeiwen.com/subject/lidrpctx.html