设计模式分为三类:

  1. 创建型
  2. 结构型
  3. 行为型

创建型

  1. 单例模式: 有且只有一个
  2. 原型模式: 小学生抄作业, 你写啥我抄啥, 不费脑子造出一模一样的作业
  3. 工厂模式: 不同规格的工厂, 用不同规格的零件里装配出不同规格的产品
  4. 建造者模式: Director有顺序的指导Builder按照顺序构建出一艘宇宙飞船

结构型

  1. 适配器模式: 将充电线的不同接口转换成相同的接口, 就可以用一个同充电器充电了
  2. 桥接模式: 3种形状, 3种颜色, 桥接在一起就可以画出9种不同颜色图案的画了
  3. 合成模式: 文件和文件夹可以创造出树形结构的文件目录
  4. 装饰器模式: 科技以换壳为本, 给旧手机套上个新壳, 附带一些功能, 就是全新的产品了
  5. 动态代理模式: 通过jdk的InvocationHandler及Proxy.newProxyInstance, 我能代理一切
  6. 外观模式(Facade): 遵从一致的设计语言, 外观一样
  7. 享元模式: 棋盘上的棋子, 本质上都是一个棋子
  8. 静态代理模式: 我就只代理一种对象

行为型

  1. 责任链模式: 批假条, 组长找班长, 班长找老师, 老师找校长, 直到找到能处理该假条的人
  2. 命令者模式: 命令物件将动作及参数封装起来
  3. 迭代器模式: 数组的迭代器, 本质上就是游标
  4. 中介者模式: 在中介登记信息, 有事找中介
  5. 备忘录模式: 可回滚
  6. 观察者模式: 发布/订阅事件