前端在软件开发过程中开始扮演越来越重要的角色,需要处理的业务越来越复杂,前端跟后端的差距也越来越小。
设计模式是对软件中普遍存在的各种问题所提出的解决方案,设计模式作为通用设计思想,可以极大的提高软件的扩展性、复用性和可维护性,那么设计模式将如何帮助前端工程师开发出更加优秀的软件产品呢?
《设计模式》一书共归纳了 23 种设计模式,这些设计模式被分为三大类: 创建型模式、结构型模式、行为型模式
本文为《JavaScripti 计模式与开发实践》一书的学习与思考。
创建型模式: 封装创建对象的变化
- 工厂模式 Factory Pattern 封装 new 构造函数
- 单例模式 Singleton Pattern 对象池
结构型模式: 封装对象之间的组合关系
- 外观模式 Facade Pattern utils;统一兼容接口
- 代理模式 Proxy Pattern 代理拦截;缓存机制提升性能
- Mixin 模式 Mixin Pattern 多继承 mixin
- 装饰器模式 Decorator Pattern 对现有类进行一次包装,增加功能。 等同于 ES7 的 装饰器
- 适配器模式 Adapter Pattern 接口等适配,达到统一目的
- 享元模式 Flyweight Pattern 对象池缓存共享
- 组合模式 Composite Pattern 树形结构,统一接口
行为型模式: 封装的对象的行为变化
- 策略模式 Strategy Pattern 同一类功能,定义不同逻辑算法,用户随意选择
- 命令模式 Command Pattern 封装一系列动作,例子很优秀呦
- 状态模式 State Pattern 多状态对象间相互固定切换
- 职责链模式 Chain Of Responsibility Pattern 解耦紧密的 if-else 判断逻辑,可 AOP 实现
- 观察者模式 Observer Pattern 发布订阅(发布者发送)
- 中介者模式 Mediator Pattern 发布订阅(订阅者互发)
- 迭代器模式 Iterator Pattern ES6 Iterator | Generator
- 模板方法模式 Template Pattern 继承共用父类模板