其中哪些是正确实施Memento设计模式的?

时间:2019-07-16 02:29:39

标签: java design-patterns memento

在GOF Book中,它说Memento设计模式的结构如下: GOF Memento Pattern
但是当我搜索Wikipedia时,它说Memento设计模式的结构如下:

两者中哪个是正确的实施方式?

2 个答案:

答案 0 :(得分:1)

所有这些图都显示了相同的瞬时模式实现的不同方面。

两个类图都不完整:

GOF图缺少看守者与发起者之间的关联。大多数类图都省略了许多关联,但是这一关联很重要,应该确实存在。

Wikipedia图忽略了看守坚持这一时刻的事实。这也是该模式应该真正存在于图中的重要部分。

GOF还正确地指出Originator-> Momento箭头是一个依赖项,而不仅仅是一个关联,因为Originator类需要Momento类的功能来实现其接口。

顺序图对于解释其工作方式最有用。

答案 1 :(得分:0)

这两个图都解释了相同的概念,但是方式不同。 Momento模式的关键概念是Momento模式用于保存对象的状态并随后恢复状态。 它基本上包括四个类:

1。原始类:原始类创建状态并将其存储在Memento的对象中 2。 Momento类: Momento类从Momento恢复对象状态 3。 CareTaker类:​​ Caretaker类包含Momento对象的列表 4。 MomentoDemo类:它同时使用Originator类和Caretaker类,并使用其对象来显示对象状态的恢复。