【问题标题】:Why does a Memento object have a setState() function?为什么 Memento 对象有一个 setState() 函数?
【发布时间】:2013-10-16 22:29:18
【问题描述】:

这是我不了解这种模式的一件事。为什么 Memento 对象没有构造函数和 getState() 方法?创建 Memento 后何时设置它的状态才有意义?这不是改变过去吗?

【问题讨论】:

  • Wikipedia 示例 (en.wikipedia.org/wiki/Memento_pattern) 仅使用构造函数和 getState 实现。
  • 嗯,谢谢你,我看到的大多数示例和解释都包括 setState 函数
  • 有趣的地方!也许是因为习惯同时拥有 get 和 set 访问器。在这种情况下,集合应该是私有的

标签: memento


【解决方案1】:

你不应该在 Memento 类中有 setState 方法。这没有道理。 Memento 只是 Caretaker 用来恢复 Originator 状态的令牌。如果看守者想要一个带有新状态信息的新纪念品,它应该从 Originator 那里获得。

Here is a good example.

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 2012-09-06
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 2021-08-17
    • 2011-10-10
    相关资源
    最近更新 更多