设计模式之Memento

当需要恢复restore时,通常将Originator的状态备份到Memento中,从而不破坏封装。

Memento的维护控制靠的是Caretaker。

所以,Memento模式带有典型的MVC模式。

Caretaker是控制器,

Memento是模型,

Originator是视图。

故,Caretaker内部有Memento的引用,而Originator依赖于Memento。Caretaker负责保存Memento,Originator仅仅是使用Memento而已。这就是三者的简单关系。

Memento的典型运用有表单提交时,如果某个字段验证失败了,那么返回原来页面时,仍然能够保证原有的字段值的存在,无需我们自己重新填写。

Memento比较浪费内存,是Originator的内部状态的备份,这是其优点,当然有时候也是一种缺点。

猜你喜欢

转载自jxyang.iteye.com/blog/1448225