命令模式(p191-233)

命令模式

将'请求'封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象.命令模式也支持可撤销的操作.

Command 接口具备 execute()和undo()方法
Invoker 具备 设置命令方法
Receiver 具备 action()方法

NoCommand 对象是一个空对象(null object),有时空对象本身也被视为一种设计模式.

MacroCommand 宏命令执行命令集合

更多用途

  1. 队列请求
  2. 日志请求 store() load()

设计箱内的工具箱

原则

  1. 封装变化
  2. 多用组合,少用继承
  3. 针对接口编程,不针对实现编程
  4. 为交互对象之间的松耦设计而努力
  5. 类应该对拓展开发,对修改关闭
  6. 依赖抽象,不要依赖具体类