设计原则
- 最重要的思想:开发封闭原则
- 对扩展开放
- 对修改封闭
工场模式
- 用一个工厂函数,来创建实例,隐藏new
- 如jQuery $函数
- 如Reat createElement函数
单例模式
- 全局唯一的实例(无法生成第二个)
- 如Vuex Redux的store
- 如全局唯一的dialog modal
代理模式
- 使用者不能直接访问对象,而是访问一个代理层
- 在代理层可以监听get set 做很多事情
- 如ES6 Proxy实现Vue3响应式
观察者模式
发布订阅模式
装饰器模式
- 原功能不变,增加一些新功能(AOP面向切面编程)
- ES6和Typescript的Decorator语法
- 类装饰器、方法装饰器
- nodejs的nextjs