【问题标题】:Memento Design Pattern - Real World Examples纪念品设计模式 - 真实世界的例子
【发布时间】:2021-04-01 17:42:21
【问题描述】:

谁能给我一些真实世界的 Memento 设计模式示例。我听说 Cart 可以被认为是 Memento 设计模式之一。这种例子是首选。 提前致谢。 :)

【问题讨论】:

    标签: design-patterns memento


    【解决方案1】:

    撤消/重做功能

    根据Refactoring Guru

    问题
    想象一下,您正在创建一个文本编辑器应用程序。除了简单的文本编辑之外,您的编辑器还可以格式化文本、插入内嵌图片等。

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-05-15
      • 2017-05-23
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 2014-04-11
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      相关资源
      最近更新 更多