原文链接 作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com>
备忘录模式是一种行为模式。备忘录模式用于保存对象当前状态,并且在之后可以再次使用此状态。备忘录模式实现的方式需要保证,被保存的对象状态不能被对象从外部访问,目的为了被保存的这些对象状态的完整性。
备忘录模式通过两个对象实现:Originator以及Caretaker。Originator类代表了其状态能够被存储并被用于恢复之前的状态,它使用内部类保存对象的状态。此内部类就被叫做备忘录,注意此类是私有的,它不能被其他对象访问。
Caretaker是一个帮助类,它的职责就是通过备忘录帮助Originator存储当前状态或者恢复重建其之前的状态。因为备忘录是Originator的私有类,Caretaker不能访问它,因此它作为一个对象被存储在caretaker中。
现实中最好的例子是文本编辑器,它任何时候都存在已经输入的数据,并且可以使用回退功能恢复之前的存储(写作)状态。我们将实现相同功能并且提供一个任何时候都把输入、存在内容到文件中的工具集,此外,我们也能恢复上一个存储(写作)的状态。为了简单,此处没用更实用任何写入数据到文件的IO操作。
Originator类
01 |
package com.journaldev.design.memento; |
03 |
public class FileWriterUtil {
|
05 |
private String fileName; |
06 |
private StringBuilder content; |
08 |
public FileWriterUtil(String file){
|
10 |
this .content= new StringBuilder(); |
14 |
public String toString(){
|
15 |
return this .content.toString(); |