[设计模式]命令模式

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

命令模式把方法调用封装起来,所以调用此方法的对象不需要关心事情是如何进行的,只要知道如何使用包装成成形的方法类完成就可以。用命令对象来说就是,命令对象将动作和接收者包装其中,这个对象对外只暴露一个execute()方法,当此方法被调用的时候,接收者会进行这个具体动作,但是外面的其他对象不知道究竟哪个接收者进行了什么动作,只知道调用execute()方法就会达到请求的目的。

类图:

撤销功能的实现,命令接口加入一个undo()方法就可以。并使调用者保存前一次的命令或者所有的命令堆栈。

还可以制造一个新命令执行其他一堆命令,只要命令对象包含一个命令对象列表,在execute()方法中循环调用这个列表中每个命令对象的execute()方法即可。

参考:《Head First设计模式》

posted @ 2016-07-31 10:54  BelloWorld  阅读(126)  评论(0编辑  收藏  举报