美文网首页
JS设计模式

JS设计模式

作者: 钱罗罗_ | 来源:发表于2020-05-18 14:33 被阅读0次

    一、单例模式

    保证一个特定的类,仅有一个实例,第二次new的时候,返回的是完全等于(===)的同一个实例。一般登录购物车都是一个单例。

    单例模式

    应用场景:JQuery中的$、Vuex中的Store、Redux中的Store等

    二、工厂模式

    工厂模式就相当于创建实例对象的new,提供一个创建对象的接口。

    工厂模式

    应用场景:JQuery中的$、Vue.component异步组件、React.createElement等

    三、装饰器模式

    在不改变对象自身的基础上,动态的给某个对象添加新的功能,同时又不改变其接口。

    装饰器模式

    应用场景:ES7装饰器、Vuex中1.0版本混入Vue时,重写init方法、Vue中数组变异方法实现等

    四、观察者模式

    定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。

    观察者模式

    观察者模式是由具体目标调度的,观察者模式的订阅者与发布者之间是存在依赖的。目标和观察者是基类,目标提供维护观察者的一系列方法,观察者提供更新接口。具体观察者和具体目标继承各自的基类,然后具体观察者把自己注册到具体目标里,在具体目标发生变化时候,调度观察者的更新方法。

    应用场景:JS事件、JS Promise、JQuery.$CallBack、Vue watch、NodeJS自定义事件,文件流等

    ---发布/订阅模式:订阅者把自己想订阅的事件注册到调度中心,当该事件触发时候,发布者发布该事件到调度中心(顺带上下文),由调度中心统一调度订阅者注册到调度中心的处理代码。

    比如有个界面是实时显示天气,它就订阅天气事件(注册到调度中心,包括处理程序),当天气变化时(定时获取数据),就作为发布者发布天气信息到调度中心,调度中心就调度订阅者的天气处理程序。

    五、迭代器模式

    提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示

    相关文章

      网友评论

          本文标题:JS设计模式

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