3 相关模式
(1)命令模式和组合模式
这两个模式可以组合使用。在命令模式中,实现宏命令的功能就可以使用组合模式来实现。前面的示例并没有按照组合模式来做,那是为了保持示例的简单,还有突出命令模式的实现,这点请注意。
(2)命令模式和备忘录模式
这两个模式可以组合使用。在命令模式中,实现可撤销操作功能时,前面讲了有两种实现方式,其中有一种就是保存命令执行前的状态,撤销的时候就把状态恢复。如果采用这种方式实现,就可以考虑使用备忘录模式。如果状态存储在命令对象中,那么还可以使用原型模式,把命令对象当作原型来克隆一个新的对象,然后将克隆出来的对象通过备忘录模式存放。
(3)命令模式和模板方法模式
这两个模式从某种意义上有相似的功能,命令模式可以作为模板方法的一种替代模式,也就是说命令模式可以模仿实现模板方法模式的功能。如同前面讲述的退化的命令模式可以实现Java的回调,而 Invoker智能化后向服务进化,如果 Invoker的方法就是一个算法骨架,其中有两步在这个骨架面没有具体实现,需要外部来实现,这个时候就可以通过回调命令接口来实现而类似的功能在模板方法中,是先调用抽象方法,然后等待子类来实现。可以看出虽然实现方式不一样,但是可以实现相同的功能。
0