谁能给我一些真实的Memento设计模式的例子。我听说Cart可以被认为是Memento设计模式之一。最好是这样的例子。提前谢谢。:)
发布于 2020-12-23 12:14:15
撤消/重做函数
根据Refactoring Guru的说法,
Problem
假设您正在创建一个文本编辑器应用程序。除了简单的文本编辑之外,您的编辑器还可以格式化文本、插入内联图像等。
在某个时刻,您决定让用户撤消对文本执行的任何操作。多年来,这一功能变得如此普遍,以至于现在人们希望每个应用程序都有它。对于实现,您选择了直接方法。在执行任何操作之前,应用程序会记录所有对象的状态,并将其保存在一些存储中。稍后,当用户决定恢复操作时,应用程序会从历史记录中获取最新的快照,并使用它来恢复所有对象的状态。适用性
当您想要生成对象状态的快照以能够恢复对象的先前状态时,请使用Memento模式。
Memento模式允许您制作对象状态的完整副本,包括私有字段,并将它们与对象分开存储。虽然大多数人会因为“撤消”用例而记住这种模式,但在处理事务时(即,如果您需要在出错时回滚操作),它也是必不可少的。
https://stackoverflow.com/questions/65418536
复制相似问题