在GOF Book中,它说Memento设计模式的结构如下:
但是当我搜索Wikipedia时,它说Memento设计模式的结构如下:
两者中哪个是正确的实施方式?
答案 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类,并使用其对象来显示对象状态的恢复。