本文为阅读掘金作者修言的 <<JavaScript设计模式核心原理与应用实践>> (opens new window)的笔记和感悟,作者写作不易,阅读小册请支持正版。小册非常不错,强烈推荐。如有侵权,请联系删除相关内容。
TIP
基础理论知识是一个人的基线,理论越强基线越高。再为自己定一个目标和向上攀附的阶梯,那么达到目标就是时间问题,而很多野路子工程师搞了半辈子也未达到优秀工程师的基线,很多他们绞尽脑汁得出的高深学问,不过是正规工程师看起来很自然的东西。—— 吴军
目前前端并不缺用各种框架、语法去写 hello world 的人,缺的是能驾驭这个框架、语法,凭借自己深刻的架构思想和工程思想支配这个框架,创造牛逼产出的人。
驾驭技术的能力分为三层,层层递进:
- 能用健壮的代码去解决具体的问题;
- 能用抽象的思维去应对复杂的系统;
- 能用工程化的思想去规划更大规模的业务;
针对第一层所对标的经典知识体系就是设计模式。
设计模式的核心思想是封装变化,设计模式的核心操作是去观察整个逻辑里面的变与不变,然后将变与不变分离,达到使变化的部分灵活、不变的地方稳定的目的。
设计原则是设计模式的指导理论,SOLID 指代的五个基本原则分别是:
- 单一功能原则(Single Responsibility Principle)
- 开放封闭原则(Opened Closed Principle)
- 里式替换原则(Liskov Substitution Principle)
- 接口隔离原则(Interface Segregation Principle)
- 依赖反转原则(Dependency Inversion Principle)
在 JS 设计模式中主要用到的设计模式基本都围绕 ”单一功能“ 和 ”开放封闭“ 展开。
《设计模式:可复用面向对象软件的基础》这本书将23种设计模式按照“创建型”、“行为型”和“结构型”进行划分:
- 创建型
- 单例模式
- 原型模式
- 构造器模式
- 工厂模式
- 抽象工厂模式
- 结构型
- 桥接模式
- 外观模式
- 组合模式
- 装饰器模式
- 适配器模式
- 代理模式
- 享元模式
- 行为型
- 迭代器模式
- 解释器模式
- 观察者模式
- 中介者模式
- 访问者模式
- 状态模式
- 备忘录模式
- 策略模式
- 模板方法模式
- 职责链模式
- 命令模式
这里并不会对所有的设计模式都进行介绍,只介绍前端有迫切需求的几种。
构造器模式 →