设计模式大纲
# 设计原则与思想
# 八大设计原则
# solid原则
# 单一职责原则 Single Responsibility Principle
# 开闭原则 Open Closed Principle
# 里氏替换原则 Liskov Substitution Principle
# 接口隔离原则 Interface Segregation Principle
# 依赖反转原则 Dependency Inversion Principle
# 设计模式(需要从实现方式,使用场景两方面看)
# 创建型
# 单例模式
# 使用场景
- 重点对资源的共享,避免了资源的重复创建
# 实现方式
- 饿汉式
- 懒汉式
- 双重检测
# 工厂模式
# 实现方式
- 简单工厂
- 方法工厂
- 抽象工厂
# 使用场景
- 封装创建过程,方便创建对象
# 建造者模式
# 实现方式
- 创建builder,使用builder来校验参数,创建对象
# 使用场景
- 一般用来创建同一类型的复杂对象(比如构造参数复杂),或者不想对外暴露set方法
# 原型模式
# 实现方式
- 浅拷贝
- 深拷贝
# 使用场景
- 当创建对象的成本比较大,需要的对象和已知对象的差别不大,可以拷贝已知对象来创建新的对象。
# 结构型-对象与对象之间组合成新的结构
# 代理模式
# 实现方式
- 静态代理
- 动态代理
# 使用场景
- 利用已知对象对它增强,mybatis的拦截器,spring的AOP
# 桥接模式
# 概念
- 一个类存在两个(或多个)独立变化的维度,我们通过组合的方式,让这两个(或多个)维度可以独立进行扩展。
# 装饰者模式
# 概念
- 装饰器模式主要解决继承关系过于复杂的问题,通过组合来替代继承。它主要的作用是给原始类添加增强功能。
# 特点
- 可以对原始类嵌套使用多个装饰器
# 适配器模式
# 实现方式
- 类适配器
- 对象适配器
# 使用场景
- 是用来做适配,它将不兼容的接口转换为可兼容的接口
# 门面模式
# 概念
- 门面模式为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。
# 组合模式
# 享元模式
- 顾名思义就是被共享的单元。享元模式的意图是复用对象,节省内存,前提是享元对象是不可变对象
# 行为型
# 观察者模式
# 实现方式
- 发布-订阅型 1:N
- 生产-消费型 N:N
# 使用场景
- 解耦数据的产生和数据的消费
# 模板模式
# 实现方式
- 定义好模板框架,暴露接口给子类实现
# 使用场景
- 主要是用来扩展和复用代码
# 策略模式
# 实现方式
- 可以使用工厂类来创建策略,动态选择策略(if else,或者反射)
# 使用场景
- 将对象的创建和使用解耦
# 责任链模式
# 实现方式
- 将流程拆分成一个一个的步骤,交给handler处理
# 使用场景
- 适合业务复杂,多变的场景
# 状态模式
# 实现方式
- 分支逻辑法
- 查表法
- 态模式
# 使用场景
- 游戏人物,审批流场景
# 迭代模式
# 实现方式
- 创建迭代器,遍历数据,不影响集合对象
# 使用场景
- 遍历数据
# 访问者模式
# 备忘录模式
# 使用场景
- 数据备份
# 命令模式
# 解释器模式
# 中介模式
上次更新: 2022/08/23, 12:44:32