设计模式就是一些长期软件工程实践中积累下来经验,遵守这些模式代码会变得更加可复用可维护可扩展,前端设计模式规则,开放封闭(对扩展开放,对内部修改封闭)以及单一职责(一个函数只做一件事),总的来说就是变和不变进行分离,确保变化的部分灵活、不变的部分稳定。
- 工厂模式:
把不变的部分封装起来(工厂),只需要我们通过传递变的参数(原料)进去来生产想要的东西,是变和不变分离原则的一种体现。【构造函数?】
- 单例模式:
确保只有一个实例
ES6 的模块其实就是单例模式,模块中导出的对象就是单例的,多次导入其实是同一个引用。
- 策略模式:
算法的使用和算法的实现分离开来,一般用来消除过多的 if else,同时代码复用性扩展性也提高
- 发布订阅者模式:
发布者维护一份存有订阅者信息的列表,当满足某个触发条件时,就会通知列表里的所有订阅者
比如事件流里面的监听函数(订阅者),当事件触发时去通知所有监听这个事件的监听函数
- 观察者模式:
定义了一对多的依赖关系,当一个对象状态改变时,所有依赖他的对象都要得到通知并更新