问题标签 [memento]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4180 浏览

java - 备忘录模式和序列化之间的区别

我正在对纪念品模式进行一些研究,而且我通常对行为模式不熟悉,而且我的研究让我很困惑。我一直感到困惑的主要事情之一是备忘录模式和序列化之间的区别。

据我所知,两者都可用于存储对象并在以后将它们带回,但我无法找到关于它们之间主要区别的明确答案,也许我在研究中遗漏了一些东西但我想知道是否有人可以阐明两者之间的区别。

谢谢

0 投票
2 回答
3246 浏览

java - 在 Java 中实现备忘录模式的不同方法

我正在对纪念品模式进行一些研究,似乎我遇到的大多数示例似乎都比较相似(将字符串保存到数组中并在需要时恢复它)如果我错了,现在纠正我,但我相信我刚刚描述的方法是“对象克隆”,但是实现备忘录模式的其他方法是什么?

从我也了解到可以使用序列化,但似乎有一个灰色区域,人们说它违反了对象的封装,因此不是实现 Memento 模式的方法。

那么任何人都能够阐明实现该模式的方法吗?我的研究提出了一种所有不同事物的混合体,只是让一切变得混乱。

谢谢

0 投票
3 回答
3195 浏览

oop - 备忘录设计模式和状态设计模式

Memento 设计模式用于将对象恢复到以前的状态,例如撤消。但是我们可以多次撤消和重做。我已经多次阅读文章,但我仍然不清楚它们是否相似或相互补充并且可以一起使用。

状态模式可以和备忘录设计模式相关还是一起使用?

0 投票
1 回答
95 浏览

memento - 为什么 Memento 对象有一个 setState() 函数?

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

0 投票
1 回答
420 浏览

c# - 关于纪念品的一些解释

我已经检查了每一个地方,并且阅读了无数的文章。我什至去一些中文论坛寻找答案。问题是我无法完全理解 c# memento 模式。不同的文章显示了不同的方法,我无法正确理解。大多数文章只显示简单的东西,如字符串纪念品。我正在尝试了解如何执行撤消功能并需要帮助,以及如何在公共部分类上执行撤消功能?我只需要一个显示公共部分类纪念品的小示例。提前致谢。

0 投票
2 回答
1270 浏览

java - 备忘录模式 - 恢复备忘录中的复杂对象(JAVA)

感谢您阅读这个问题。请帮我解决这个复杂的问题。

情况如下:

Oringator 持有一个对象来执行一些方法。

Memento 模式需要备份 oringator 中的复杂对象状态。如何?

示例代码:

http://pastebin.com/4rV2aw3B

问题是,java 确实按值传递,而不是按引用传递。但是对象传递有点棘手。如果我将一个对象传递给该方法,尽管该方法拥有一个新的对象内存地址,但该内存地址仍指向传入的同一对象。请参见此示例: http ://www.javaworld.com/javaqa /2000-05/03-qa-0526-pass.html

如果我创建备忘录并将对象传递给新的备忘录对象,备忘录对象仍然保存原始复杂对象(需要备份)。

那么,如何创建备忘录模式来备份命令模式中的复杂对象呢?

谢谢你。

0 投票
1 回答
665 浏览

c# - Catel 数据窗口中的应用按钮

我正在重新实现选项对话框以支持取消更改。我正在尝试使用Catel's DataWindowwith IMementoService。注意到 DataWindow 已经有 OK 和 Cancel 按钮,但没有 Apply。只是想知道我是否应该通过调用将它添加为自定义按钮,AddCustomButton或者我错过了一些 API 部分。

0 投票
1 回答
2277 浏览

java - Java - 备忘录模式和撤消

我正在实现一个需要我使用备忘录模式的撤消/重做功能。

部分程序的流程:“......程序然后使用Memento Pattern存储之前的Vector,然后将新创建的对象添加到Vector中。之后,用户可以选择一个show命令来显示Vector里面的内容,他也可以输入undo命令来恢复,可以重复undo,直到恢复到原来的状态……”

根据我的研究,我知道会有一个创始人、纪念品和看守人。

这是我的看护计划

不幸的是,我未能确定“发起人”,也不知道会是谁。如果没有 Originator,此代码片段是否曾经是正确的 Memento 模式?

0 投票
2 回答
137 浏览

apache - .htaccess - 为 Memento 配置 Apache 服务器

我尝试配置Apache服务器以添加HTTP Link header指向MementoTimeGates url

我的 htaccess:

不变:http ://www.mementoweb.org/tools/apache/

我正在XAMPP服务器上测试代码,但服务器发送的响应是:

htaccess 有什么问题?

编辑 1

按照 Jon Lin 的建议删除前导斜杠:

服务器发送的新响应:

正如我们所看到的,protocole 已被解析,但 url 的其余部分没有被解析,还有其他建议吗?

0 投票
1 回答
260 浏览

design-patterns - Memento 在伪随机数生成器中的使用

请问,伪随机数生成器中memento到底是怎么用的?我对伪随机数生成器有很高的了解,但我没有看到任何纪念品(即使我读过它也在那里)。非常感谢您的回答:)