我正在对 Memento 模式进行一些研究,我通常对行为模式不熟悉,并且在我的研究中我一直很困惑。我一直感到困惑的主要事情之一是备忘录模式和序列化之间的区别。
据我所知,两者都可用于存储对象并在以后将它们带回,但我无法就它们之间的主要区别找到明确的答案,也许我错过了一些东西在我的研究中,但我想知道是否有人可以阐明两者之间的区别。
谢谢
最佳答案
通常,Memento 模式用于实现回滚/保存点支持。例如,我可能想在某个时间点标记一个对象的状态,做一些工作,然后决定将该对象恢复到标记时的状态。
Memento 模式的实现可以使用序列化,这将涉及将对象的内容保存到 byte[] 中并保存在内存中或写入磁盘。还原对象的内容时,将从序列化副本重建。
相反,我可以通过在内存中克隆对象并保留对副本的引用,然后在对象需要还原时将状态复制回来来实现备忘录模式。此方法不使用序列化。
关于java - Memento 模式和序列化之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14076772/