您的位置:首页 > 编程语言 > Java开发

设计模式--备忘录模式

2016-04-09 00:00 351 查看
摘要: 简单记录备忘录模式的使用。

备忘录模式(memento):

保存一个对象的某个状态,以便在适当的时候恢复对象。

备忘录模式更确切的描述应该是"备份-恢复"模式。

示例:

备忘录模式测试类MementoTest.java

/**
* 备忘录模式测试类
*
* @author Kevin
* @date 2016-3-16
*/
public class MementoTest {

public static void main(String[] args) {
/* 原始类 */
Original original = new Original("阅读KK的《必然》");

/* 创建备忘录 */
Storage storage = new Storage(original.createMemento());

/* 修改原始类的值 */
System.out.println("修改之前,原始类的值为: " + original.getValue());
original.setValue("阅读Ray Kurzweil的《奇点临近》");
System.out.println("修改之后,原始类的值为: " + original.getValue());

/* 恢复原始类的值 */
original.restoreMemento(storage.getMemento());
System.out.println("恢复之后,原始类的值为: " + original.getValue());
}
}

原始类Original.java

/**
* 原始类
*
* @author Kevin
* @date 2016-3-16
*/
public class Original {

/* 值 */
private String value;

public Original(String value) {
this.value = value;
}

/**
* 创建备忘录
*
* @author Kevin
*/
public Memento createMemento() {
return  new Memento(value);
}

/**
* 恢复备忘录
*
* @author Kevin
*/
public void restoreMemento(Memento memento) {
this.value = memento.getValue();
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}
}

存储备忘录的类Storage.java

/**
* 存储备忘录的类
*
* @author Kevin
* @date 2016-3-16
*/
public class Storage {

/* 备忘录类 */
private Memento memento;

public Storage(Memento memento) {
this.memento = memento;
}

public Memento getMemento() {
return memento;
}

public void setMemento(Memento memento) {
this.memento = memento;
}
}

备忘录类Memento.java

/**
* 备忘录类
*
* @author Kevin
* @date 2016-3-16
*/
public class Memento {

/* 值 */
private String value;

public Memento(String value) {
this.value = value;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息