第六章:命令模式 - Head First 设计模式
命令模式
命令模式
将”请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。
模式类图:p207图

典型应用
命令模式可以将运算打包,然后将它传来传去,甚至在不同线程中被调用,常常应用在:Scheduler(调度器)、线程池、工作队列、日志、事务处理等。
- 线程池:线程从工作队列取出一个命令对象,调用execute()。
- 日志记录-断电恢复:在执行命令的时候,将历史记录(命令对象)持久化到磁盘,一旦系统死机,就可以重新加载命令对象,然后一次调用这些对象的execute()。
- 日志记录-故障恢复:将某个检查点之后的的操作记录下来,如果系统出状况,就可以从检查点开始应用这些操作。
- 日志记录-undo:比如电子表格的变化记录在日志中,这样就不用每次一有变化就备份整个电子表格。
- 事务:事务里的所有操作,要么全部完成,要么全不执行。
p229图

例子:家居遥控器的例子
应用命令模式的设计:p215图

实现命令:217代码,p221代码,宏命令(调用多个命令)p224代码


宏命令(调用多个命令):

实现遥控器:218代码

blog comments powered by