【发布时间】:2011-09-30 09:15:12
【问题描述】:
我们知道 memento 模式在不违反封装、捕获和外部化对象的内部状态的情况下,可以在不知道原始状态的情况下稍后回收。
我的问题是java.io.Serializable 是如何出现在这种模式下的,因为当我们序列化任何私有变量 并同时将对象状态写入文件时,私有变量的值是打开的到世界,封装似乎在这里失败了。
【问题讨论】:
-
Wikipedia article on the Memento pattern 没有出现任何
encapsulation。 -
@Andre,请参考以下链接。 javacamp.org/designPattern
-
另外一个链接供您参考。 sourcemaking.com/design_patterns/memento
-
GoF 书中明确提到了封装。它继续解释说,除了原始类之外,纪念品应该对所有人“不透明”。
-
@advs89,这是否意味着它不应该用于序列化,如果它被不同的类(例如 XML 框架)序列化?
标签: java design-patterns serializable memento