在软件的构建过程中,某些对象的状态在转换过程中,也许由于某种需要,规定程序可以回溯到对象之前某个点时的状态,假如使用一些公有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。
如何实现对象状态的良好保存与恢复?但同时又不会因此而破坏对象自身的封装性。
Memento
备忘录模式提供解决途径,它在不破坏封装性的前提下,捕获一个对象的内部状态,并在这个对象之外保存这个状态。这样就可以将对象恢复到原先保存的状态。《设计模式》
— GOF
Memento
备忘录模式
UML图如下:
重要角色
:1、原发器角色
Originator:
它是我们关注的对象,我们需要保存和回溯的状态就是它的状态。我们需要在它内部创建备忘录对象并运用备忘录对象保存我们需要保存的状态值,同时它还需要提供一种手段来恢复我们以前保存的状态值
.2、备忘录对象
Memento:
它用于在不破坏封装性的前提下,捕获一个
Originator
的内部状态,并在备忘录对象
Memento
中保存这个状态。
(Caretaker:
用于防止原发器以外的 ...


雷达卡


京公网安备 11010802022788号







