13.3.9备忘录模式
备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。
此模式的使用场景:
(1)需要保存一个对象在某一时刻的状态或部分状态。
(2)如果用一个接口来让其他对象得到这些状态,将会暴露对象的实现细节并破坏对象的封装性,一个对象不希望外界直接访问其内部状态,通过中间对象可以间接访问其内部状态。
如用户把APP切换到后台时,需要保存当前界面的数据,以便切换回前台时恢复数据,及游戏和文本编辑中的存档功能,可使用备忘录模式。
13.3.10迭代器模式
迭代器模式提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。此模式适用于遍历一个容器对象时,如数组、链表和Map等。
13.3.11模板方法模式
模板方法模式定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法实际上是封装一个固定流程,就像是一套执行模板一样,第一步该做什么,第二步该做什么都已经在抽象类中定义好了。而子类可以有不同的算法实现,在框架不被修改的情况下实现某些步骤的算法替换,能够定制流程中的某些或所有步骤。
此模式的使用场景: