今天开始来学习JavaScript常见的设计模式,其实设计模式和算法一样,是脱离语言的一种通用性经验性的思想。前端程序员同样是软件工程师,需要扎实的专业基础,而设计模式也是计算机重要专业基础之一。
# 什么是设计模式
设计模式就是在软件设计过程中,针对特定问题的简洁而优雅的解决方案
在开发业务代码时,面临着各种各样不同的需要,不同的情况会总结出不同的解决方案。我们可以将这些经验总结起来,合理运用到不同的问题中,从而可以使用通用的方案来解决问题。简单点可以将设计模式理解成在编写代码时的一些小套路,小技巧。
设计模式具有SOLID
五大设计原则
- 单一功能原则(
S
ingle Responsibility Principle):一个程序只做好一件事 - 开放封闭原则(
O
pened Closed Principle):对拓展开放,对修改封闭 - 里式替换原则(
L
iskov Substitution Principle):子类能覆盖父类,并能出现在父类出现的地方 - 接口隔离原则(
I
nterface Segregation Principle):保持接口的单一独立 - 依赖反转原则(
D
ependency Inversion Principle):使用方法只关注接口而不关注具体类的实现
前端开发使用JavaScript,我们应该重点关注前两个原则也就是单一功能原则和开放封闭原则
# 为什么需要设计模式
为什么需要设计模式,也就是学习与使用设计模式可以带来哪些好处。
正是因为现在的业务越来越庞大,而且还需要不断的迭代与更新,所以我们在编写代码的时候要考虑代码的可读性、拓展性、复用性和可靠性。
- 易读性:能够提升代码的可读性,提升后续开发效率
- 拓展性:对代码解耦,能很好地增强代码的易修改性和拓展性
- 复用性:可以重用已有的解决方案,无需再重复相同工作
- 可靠性:能够增加系统的健壮性,使代码编写真正工程化
# 设计模式的分类
从意图上区分,可以将设计模式分别被划分为创建型模式、结构型模式和行为型模式
- 创建型模式的目的就是封装创建对象的变化
- 结构型模式封装的是对象之间的组合关系
- 行为型模式封装的是对象的行为变化。
# JavaScript常见设计模式
我们常常能听到23种设计模式,今天跟着字节跳动的讲师,先来学习JavaScript常见的十种设计模式:
- 单例模式 (opens new window)
- 策略模式
- 代理模式
- 发布订阅模式
- 命令模式
- 组合模式
- 装饰器模式
- 适配器模式