首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Memento设计模式-现实世界的例子

Memento设计模式-现实世界的例子
EN

Stack Overflow用户
提问于 2020-12-23 11:11:42
回答 1查看 322关注 0票数 0

谁能给我一些真实的Memento设计模式的例子。我听说Cart可以被认为是Memento设计模式之一。最好是这样的例子。提前谢谢。:)

EN

回答 1

Stack Overflow用户

发布于 2020-12-23 12:14:15

撤消/重做函数

根据Refactoring Guru的说法,

Problem

假设您正在创建一个文本编辑器应用程序。除了简单的文本编辑之外,您的编辑器还可以格式化文本、插入内联图像等。

在某个时刻,您决定让用户撤消对文本执行的任何操作。多年来,这一功能变得如此普遍,以至于现在人们希望每个应用程序都有它。对于实现,您选择了直接方法。在执行任何操作之前,应用程序会记录所有对象的状态,并将其保存在一些存储中。稍后,当用户决定恢复操作时,应用程序会从历史记录中获取最新的快照,并使用它来恢复所有对象的状态。适用性

当您想要生成对象状态的快照以能够恢复对象的先前状态时,请使用Memento模式。

Memento模式允许您制作对象状态的完整副本,包括私有字段,并将它们与对象分开存储。虽然大多数人会因为“撤消”用例而记住这种模式,但在处理事务时(即,如果您需要在出错时回滚操作),它也是必不可少的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65418536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档