概述
设计模式是对应的一些处理方案形成的思想所构成的模式。主要正对是类和对象设计和构造,他区分语言,总共23中设计语言(架构设计和源码设计)
设计模式的分类
- 五种创建型模式(关于对象的创建)
- 七种结构型模式(将多个小结构并入一个大结构)
- 十一种行为型模式(对象的通信逻辑)
设计模式分类图
设计模式的七大原则
- 单一责任原则*
- 开放封闭原则*
- 里氏置换原则
- 依赖倒转原则
- 接口隔离原则
- 迪米特法则
- 合成复用原则
主要讲解的模式
- 创建型模式(工厂模式、单列模式)
- 结构性模式(代理模式、装饰器模式、组合模式)
- 行为型模式(观察者模式 策略模式 迭代器模式)
工厂模式
以工厂的形式来生成对象(不关注对象的细节)
单例模式(饿汉,懒汉)
保证产生的对象只有一个(不会被污染)
组合模式
将多个小结构组合成一个大结构(将共有的函数放在一起调用) 将init方法一起执行 利用组合模式来执行多个同名方法 组合模式的应用 vue里面use 和install
装饰器模式
用一个新的类将对应的原本的对象进行分装再进行加强(在不改变原有对象的基础上增强对象) TS内置有对应的装饰器Deccorator TS中使用注释来进行对应的装饰器添加@decorator
代理模块
概述
代理模块是在元有对象的基础上增强对应的对象(利用代理对象来增强)代理对象通常访问的是实际的对象
示例
我(原本的对象)请了会计(代理对象),会计给我管钱(功能增强),当会计(代理对象)把钱花完了,我(原本的对象)的钱也没了
- 代理对象会对原本的对象进行功能增强
- 代理对象影响的是实际的对象
ES7新增对应的Proxy的类 来帮助我们代理