代码无错未必优
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。
要保存的细节给封装在了memento中了,哪一天要更改保存的细节也不用影响客户端。memento模式比较适用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只能是众多属性中的一小部分时,originator可以根据保存的么能头条信息还原到前一状态。如果在某一个系统中使用命令模式时,需要实现命令的撤销功能,那么命令模式就可以使用备忘录模式来存储可撤销操作的状态。使用备忘录可以把复杂二段对象内部信息对其他的对象屏蔽起来。
当角色的状态变化时,有可能这个状态无效,这时候就可以使用暂时存储起来的备忘录将状态复原。
—————▷ 继承
-----------▷实现接口
—————> 关联
-----------> 依赖
依赖:
他描述一个对象在运行期间会用到另一个对象的关系
依赖也有方向,双向依赖是一种非常糟糕的结构,我们总是应该保持单向依赖,杜绝双向依赖的产生;
◆————> 组合
◇————> 聚合
◦ 接口
备忘录模式充分体现了聚合关系的作用,memento类作为事物的定义类,originator类和caretaker利用memento类进行定义和进行函数的调用。