设计模式之(13)——备忘录模式

Posted Java老僧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之(13)——备忘录模式相关的知识,希望对你有一定的参考价值。


福利干货第一时间送达!



一. 什么是备忘录模式


备忘录模式 就是保存了一个对象的某个状态,方便在适当的时候来恢复对象。


二. 有何优点


备忘录模式方便的给用户提供一种可以恢复状态的机制,用户可以方便的回到

历史状态,并且对信息进行了封装。


三. 初尝备忘录模式


1. 我们先画图以便理解。


设计模式之(13)——备忘录模式


2. 我们先创建一个 Original 原始类。


1public class Original {
2    private String value;
3
4    public String getValue() {
5        return value;
6    }
7
8    public void setValue(String value) {
9        this.value = value;
10    }
11
12    public Original(String value) {
13        super();
14        this.value = value;
15    }
16
17    public Memento createMemento() {
18        return new Memento(value);
19    }
20
21    public void restoreMemento(Memento memento) {
22        this.value = memento.getValue();
23    }
24
25}


3. 我们创建 Memento 备忘录类。


1public class Memento {
2    private String value;
3
4    public Memento(String value) {
5        this.value = value;
6    }
7
8    public String getValue() {
9        return value;
10    }
11
12    public void setValue(String value) {
13        this.value = value;
14    }
15
16}


4. 创建 Storage 类用来存储备忘录的类。


1public class Storage {
2    private Memento memento;
3
4    public Storage(Memento memento) {
5        this.memento = memento;
6    }
7
8    public Memento getMemento() {
9        return memento;
10    }
11
12    public void setMemento(Memento memento) {
13        this.memento = memento;
14    }
15
16}


5. 进行测试。

 

1public class Test {
2    public static void main(String[] args) {
3
4        // 创建原始类
5        Original origi = new Original("Car");
6
7        // 创建备忘录
8        Storage storage = new Storage(origi.createMemento());
9
10        // 修改原始类的状态
11        System.out.println("初始化状态为:" + origi.getValue());
12        origi.setValue("SportCar");
13        System.out.println("修改后的状态为:" + origi.getValue());
14
15        // 回复原始类的状态
16        origi.restoreMemento(storage.getMemento());
17        System.out.println("恢复后的状态为:" + origi.getValue());
18    }
19
20}


测试结果为:

初始化状态为:Car
修改后的状态为:SportCar
恢复后的状态为:Car


四. 总结


备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态并且在该对象之外保存这个状态,这样方便以后将对象恢复到原来的状态。



END


设计模式之(13)——备忘录模式
设计模式之(13)——备忘录模式




点击“阅读原文”


以上是关于设计模式之(13)——备忘录模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之备忘录模式

设计模式之- 备忘录模式(Memento Pattern)

设计模式之备忘录模式

JAVA SCRIPT设计模式--行为型--设计模式之Memnto备忘录模式(18)

JAVA SCRIPT设计模式--行为型--设计模式之Memnto备忘录模式(18)

行为型设计模式之备忘录模式