概念
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢 的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。
设计原则(5个)
S – Single Responsibility Principle 单一职责原则
- 一个程序只做好一件事
- 如果功能过于复杂就拆分开,每个部分保持独立
O – OpenClosed Principle 开放/封闭原则
- 对扩展开放,对修改封闭
- 增加需求时,扩展新代码,而非修改已有代码
L – Liskov Substitution Principle 里氏替换原则
- 子类能覆盖父类
- 父类能出现的地方子类就能出现
I – Interface Segregation Principle 接口隔离原则
- 保持接口的单一独立
- 类似单一职责原则,这里更关注接口
D – Dependency Inversion Principle 依赖倒转原则
- 面向接口编程,依赖于抽象而不依赖于具
- 使用方只关注接口而不关注具体类的实现
设计模式的类型
如果从作用上来划分,JavaScript设计模式大概分为五种设计类型:
创建型设计模式 | 结构型设计模式 | 行为型设计模式 | 技巧型设计模式 | 架构型设计模式 |
---|---|---|---|---|
简单工厂模式 | 外观模式 | 模板方法模式 | 链模式 | 同步模块 |
工厂方法模式 | 适配器模式 | 观察者模式 | 委托模式 | 异步模块模式 |
抽象工厂模式 | 代理模式 | 状态模式 | 数据访问对象模式 | Widget模式 |
建造者模式 | 装饰者模式 | 策略模式 | 节流模式 | MVC模式 |
原型模式 | 桥接模式 | 职责链模式 | 简单模板模式 | MVP模式 |
单例模式 | 组合模式 | 命令模式 | 惰性模式 | MVVM模式 |
享元模式 | 访问者模式 | 参与者模式 | ||
中介者模式 | 等待者模式 | |||
备忘录模式 | ||||
迭代器模式 | ||||
解释器模式 |