大话设计模式
字体: 16 + -

第141章

小a:“备忘录模式与命令模式有一些相似之处,他们都保存状态,他们都可以拥有前进与后退,但是他们到底在设计上与实现上有哪些差别呢?”

大b:从uml我们可以清晰的看到区别,一个保存object的状态,一个保存命令。相同:都可以前进后退。不同:执行对象不同,保存状态的对象不同,所执行的操作也不相同。由于两种模式时所对应的需求截然不同,应该说备忘录更加稳定一些,而命令的执行则更加广泛,可能一个子类的command对应一个receiver。所以相对而言command模式会更加灵活一些。应用:command模式:将命令当作一个对象进行保存,进行redo,undo操作。

例子:在绘图系统中经常需要进行redo,undo操作。memento模式:获取和保存对象的内部状态。例子:网上购物时购物车既可以理解为memento。