- 单例模式 singleton 单例/线程安全
- 工厂方法 factory 产品的生产封装化
- 抽象工厂 absfactory 多族/多产品/横向扩展容易,纵向扩展困难。
- 模板方法 template 继承/父类控制基本方法执行顺序,子类实现基本方法
- 建造者 builder 导演类/组装顺序
- 代理 proxy 为已实现类增加额外功能
- 原型 prototype 对象复制/克隆
- 中介者 mediator 多个对象互相依赖严重/mvc
- 命令 command 对执行者进行封装/封装操作集合
- 责任链 chain 诸如流程/处理者自行决定由谁处理
- 装饰 decorator
- 策略 strategy 重点在算法的替换/与Command的不同在于,Command重点在于执行对象的解耦。Command多一个执行者层。 Example。zip和gzip,命令模式可以有 压缩 解压缩 两个命令,但是具体的执行者可以有两个。 策略模式 可以由zip策略和gzip策略,每种策略均提供类压缩和解压缩的方法。
- 适配器 wrapper 将一个或多个类包装成一个类
- 迭代器 iterator
- 组合 composite tree、组合结构
- 观察者 observer notify事件触发、消息队列
- 门面 facade 控制访问接口、避免风险扩散
- 备忘录 memento 对象备份,恢复对象原始状态
- 访问者 visitor Element和Visitor双向选择。一个对象结构包含不同的类,遍历,并根据不同类附加操作。
- 状态 state 行为随状态改变而改变。比如电梯。开关运行停止。
- 解释器 interpreter
- 享元 flyweight 小状态的共享
- 桥梁 bridge 替换产品、多层继承
- 工厂方法
- 建造者
- 抽象工厂
- 单例
- 原型
- 适配器
- 桥梁
- 组合
- 装饰
- 门面
- 享元
- 代理
- 责任链
- 命令
- 解释器
- 迭代器
- 中介者
- 备忘录
- 观察者
- 状态
- 策略
- 模板方法
- 访问者