通俗易懂的java设计模式之 --备忘录模式

备忘录模式(Memento Pattern)是一种行为型设计模式,它允许你保存一个对象的状态,以便在未来的某个时间点恢复到该状态。该模式的核心思想是在不破坏对象封装性的前提下,将对象的状态保存在一个备忘录对象中,当需要恢复对象状态时,再从备忘录对象中恢复。

以下是一个简单的例子,假设我们有一个简单的文本编辑器,我们想要支持撤销和重做操作。这里我们使用备忘录模式来实现这个功能。

首先,我们需要创建一个备忘录类,用于保存文本编辑器的状态:

public class TextEditorMemento {
    private String text;

    public TextEditorMemento(String text) {
        this.text = text;
    }

    public String getText() {
        return text;
    }
}

接下来,我们需要创建一个文本编辑器类,它包含一个字符串属性用于保存文本,以及两个方法用于保存和恢复文本编辑器的状态:

public class TextEditor {
    private String text;

    public TextEditor() {
        this.text = "";
    }

    public void setText(String text) {
        this.text = text;
    }

    public String getText() {
        return text;
    }

   //保存文本
    public TextEditorMemento save() {
        return new TextEditorMemento(text);
    }

   //恢复文本
    public void restore(TextEditorMemento memento) {
        this.text = memento.getText();
    }
}

最后,我们创建一个客户端类,用于测试我们的文本编辑器和备忘录模式:

public class Client {
    public static void main(String[] args) {
        TextEditor textEditor = new TextEditor();
        textEditor.setText("Hello, World!");
        TextEditorMemento memento = textEditor.save();
        textEditor.setText("Goodbye, World!");
        System.out.println(textEditor.getText()); // Output: "Goodbye, World!"
        textEditor.restore(memento);
        System.out.println(textEditor.getText()); // Output: "Hello, World!"
    }
}

在这个例子中,我们创建了一个文本编辑器类,它包含一个字符串属性和两个方法。保存方法会返回一个备忘录对象,该对象包含当前文本编辑器的状态。恢复方法则接收一个备忘录对象,将文本编辑器的状态恢复到该备忘录对象所保存的状态。

在客户端类中,我们创建了一个文本编辑器对象,并将其文本设置为“Hello, World!”。接着,我们保存了文本编辑器的状态,并将文本修改为“Goodbye, World!”。然后,我们恢复文本编辑器的状态到之前保存的状态,并输出了文本编辑器的文本,确认恢复操作已成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值