命令模式感觉和之前的备忘录模式有点类似,不过备忘录模式是把程序当时的状态储存起来,而命令模式则是把程序每一步的命令都储存起来。书中举了一个绘画系统的例子,把命令都储存起来可以方便的执行撤销重画之类的操作,也比较容易进行命令的扩展。在什么日志或者其他需要记录操作的地方应该比较实用,我暂时也就想到这么多了。
命令模式的优点
- 更松散的耦合:命令模式使得发起命令的对象——客户端,和具体实现命令的对象——接收者对象完全解耦,也就是说发起命令的对象完全不知道具体实现对象是谁,也不知道如何实现。
- 更动态的控制:命令模式把请求封装起来,可以动态地对它进行参数化、队列化和日志化等操作,从而使得系统更灵活。
- 很自然的复合命令:命令模式中的命令对象能够很容易地组合成复合命令,也就是宏命令,从而使系统操作更简单,功能更强大。
-
更好的扩展性:由于发起命令的对象和具体的实现完全解耦,因此扩展新的命令就很容易,只需要实现新的命令对象,然后在装配的时候,把具体的实现对象设置到命令对象中,然后就可以使用这个命令对象,已有的实现完全不用变化。
网友评论