正确实现备忘录模式

4
使用备忘录设计模式,将Caretaker作为Originator的聚合体是错误的吗?
2个回答

6

不一定。Memento 的主要目的是以统一透明的方式处理不同的 Originator(获取 Memento,稍后传回以恢复状态)。

聚合关系并不一定阻止这一点。不同的 Caretaker 实例可能是不同 Originator 的聚合体(尽管一个 Caretaker 实例仅处理一个 Originator 实例),仍然可以获得透明状态恢复的好处。


我可以将Memento对象存储在类的静态变量中吗? - gaussblurinc

1

不,如果这是适合你情况的方案,那就没问题。很容易理解看守者的状态并不是保存在Memento中的一部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接