24 Memento日志模式(行为型)

24 Memento(行为型)

    • 动机:(游戏存档)
      • 在不破坏封装的条件下,将一个对象的状态捕捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。
      • 有时需要记录对象的内部状态。
      • 当实现检查点和撤销机制时,这是必需的,这些机制允许用户退出临时操作或从错误中恢复。您必须将状态信息保存在某个地方,以便可以将对象恢复到以前的状态。例如,撤销、重做、历史记录、快照。
      • 但是对象通常封装了它们的部分或全部状态,使得其他对象无法访问它们,并且不可能从外部保存它们。
      • 暴露这种状态会违反封装,这会损害应用程序的可靠性和可扩展性
    • 什么时候用:
      • 必须保存对象状态的快照,以便稍后将其恢复到该状态,而获取该状态的直接接口将公开实现细节并破坏对象的封装。
    • 结构:

 

    • 协作:
    • 好处:
      • 保证封装性
      • 化简Originator
    • 缺点:
      • 代价昂贵
      • Hidden costs in caring for mementos.
    • 例:

 

    • 类图:

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章