javascript设计模式与设计原则初探

90 阅读3分钟

设计哲学

1,小即是美

2,让每个程序做好一件事

3,快速建立原型(快速发布,迭代)

4,可复用性

5,可读性

设计原则

1,单一职责原则 一个程序只做好一件事;如果功能过于复杂就拆分开,每个部分保持独立;

2,开放封闭原则 对扩展开放,对修改封闭;增加需求时,扩展新代码,而非修改已有代码;

3,里氏置换原则 子类能覆盖父类;父类能出现的地方子类就能出现;

4,接口独立原则 接口的单一独立,避免出现”胖接口“;js中没有接口(typescript除外),使用少;

5,依赖倒置原则 依赖抽象接口,不要依赖具体实现;使用方只关注接口而不关注具体类的实现;

设计模式

1,单例模式

即保证一个类仅有一个实例,并提供一个访问它的全局访问点。

2,策略模式

定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。

3,代理模式

代理模式是为本体对象提供一个替身,以便控制对本体的访问。

4,迭代器模式

指提供一种方法顺序访问一个聚合对象中的各个元素而又不需要暴露该对象的内部表示。

5,发布—订阅模式

发布—订阅模式和观察者模式类似,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。让两个对象松耦合地联系在一起,可以在不太清楚彼此的细节的情况下相互通信。 当有新的订阅者出现时,发布者的代码不需要任何修改;同样发布者需要改变时,也不会影响到之前的订阅者。只要约定的事件名没有变化,就可以自由地改变它们。

6,命令模式

命令模式是最简单和优雅的模式之一,命令模式中的命令(command)指的是一个执行某些特定事情的指令。

7,组合模式

组合模式就是用小的子对象来构建更大的对象,而这些小的子对象本身也许是由更 小的“孙对象”构成的。

8,## 模板方法模式

严重依赖抽象类,使用继承和重写父类的某些方法来实现功能的设计模式。

9,## 享元模式

享元模式是一种用于性能优化的模式,核心是运用共享技术来有效支持大量细粒度的对象。

10,## 职责链模式

使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

11,## 中介者模式

用来降低多个对象和类之间的通信复杂性,它提供了一个中介类,该类处理不同类之间的通信,并支持松耦合,使代码易于维护。

12,## 装饰者模式

在不改变对象自身的基础上,程序运行期间动态给对象添加职责的方式称为装饰者模式。

13,## 状态模式

允许一个对象在内部状态改变时改变它的行为。

14,## 适配器模式

适配器模式的作用是解决两个软件实体间的接口不兼容的问题。

以上都是抄自别人,整理下