编程-设计模式 18:备忘录模式

设计模式 18:备忘录模式

定义与目的
  • 定义:备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。
  • 目的:该模式的主要目的是允许对象在其内部状态改变后可以恢复到某个历史状态,而不会暴露对象的内部状态。
实现示例

假设我们有一个文档编辑器,需要支持撤销功能。我们可以使用备忘录模式来实现这个需求。

// 备忘录接口
interface Memento {
    String getContent();
}

// 具体备忘录 - 文档备忘录
class DocumentMemento implements Memento {
    private String content;

    public DocumentMemento(String content) {
        this.content = content;
    }

    @Override
    public String getContent() {
        return content;
    }
}

// 发起人 - 文档
class Document {
    private String content;

    public Document(String content) {
        this.content = content;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Memento save() {
        return new DocumentMemento(content);
    }

    public void restore(Memento memento) {
        content = memento.getContent();
    }
}

// 客户端代码
public class Client {
    public static void main(String[] args) {
        Document document = new Document("Initial text.");

        System.out.println("Original document: " + document.getContent());

        Memento memento = document.save();

        document.setContent("Updated text.");
        System.out.println("Updated document: " + document.getContent());

        document.restore(memento);
        System.out.println("Restored document: " + document.getContent());
    }
}
使用场景
  • 当你需要为一个对象保存和恢复其内部状态时。
  • 当你需要实现撤销功能时。
  • 当你需要在不破坏封装性的前提下捕获一个对象的内部状态时。

备忘录模式通过在对象之外保存其内部状态,使得对象可以在任何时候恢复到之前的状态。这对于需要实现撤销功能或保存对象状态的场景非常有用。

小结

备忘录模式是一种常用的行为型模式,它可以帮助你在不破坏封装性的前提下捕获一个对象的内部状态,并在该对象之外保存这个状态。这对于需要实现撤销功能或保存对象状态的场景非常有用。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值