11.1

备忘录模式

下面是一个简单的备忘录模式的示例代码,使用Java语言实现:

// 备忘录类
class Memento {
    private String state;

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

    public String getState() {
        return state;
    }
}

// 发起人类
class Originator {
    private String state;

    public void setState(String state) {
        this.state = state;
    }

    public String getState() {
        return state;
    }

    public Memento createMemento() {
        return new Memento(state);
    }

    public void restoreMemento(Memento memento) {
        this.state = memento.getState();
    }
}

// 管理者类
class Caretaker {
    private Memento memento;

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

    public Memento getMemento() {
        return memento;
    }
}

// 测试类
public class MementoPatternExample {
    public static void main(String[] args) {
        Originator originator = new Originator();
        Caretaker caretaker = new Caretaker();

        // 设置初始状态
        originator.setState("State 1");
        System.out.println("初始状态:" + originator.getState());

        // 保存状态
        caretaker.setMemento(originator.createMemento());

        // 修改状态
        originator.setState("State 2");
        System.out.println("修改后的状态:" + originator.getState());

        // 恢复状态
        originator.restoreMemento(caretaker.getMemento());
        System.out.println("恢复后的状态:" + originator.getState());
    }
}

在上述示例中,我们定义了三个类:Memento(备忘录类)、Originator(发起人类)和Caretaker(管理者类)。发起人类保存当前状态、创建备忘录对象、恢复状态;备忘录类存储状态信息;管理者类负责保存备忘录对象。

在测试类中,我们创建了一个发起人对象和一个管理者对象。我们通过设置初始状态、创建备忘录、修改状态、恢复状态的步骤来演示备忘录模式的使用。通过保存和恢复备忘录对象,我们可以在需要时回滚到之前的状态。

这个简单的示例展示了备忘录模式的基本结构和使用方法。实际应用中,可以根据具体需求扩展和优化备忘录模式的实现。

posted @ 2024-11-20 10:19  liuxuechao  阅读(1)  评论(0编辑  收藏  举报