备忘录模式-大话设计模式

简介: 备忘录模式-大话设计模式

一、介绍

备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的哪些内部状态。
 
Memento(备忘录):负责存储Originator对象的内部状态,并可防止Originator以外的其他对象访问备忘录Memento。备忘录有两个接口,Caretaker只能看到备忘录的窄接口,它只能将备忘录传递给其他对象。Originator能够看到一个宽接口,允许它访问返回到先前状态所需的所有数据。
 
Caretaker(管理者):负责保存好备忘录Memento,不能对备忘录的内容进行操作或检查。

需要保持的状态比较多的时候,比较费内存。

二、代码实现

//发起人
public class Originator {
    //状态
    private  String state;
 
    public String getState() {
        return state;
    }
 
    public void setState(String state) {
        this.state = state;
    }
 
    public void show(){
        System.out.println("state:"+this.state);
    }
    //创建备忘录
    public Memento createMemento(){
        return new Memento(this.state);
    }
//        恢复备忘录
    public void recoverMemento(Memento memento){
        this.state=memento.getState();
    }
}
 
//备忘录
public class Memento {
    //状态
    private  String state;
 
    public Memento(String state) {
        this.state = state;
    }
 
    public String getState() {
        return state;
    }
}
 
//管理者
public class Caretaker {
    private  Memento memento;
 
    public Memento getMemento() {
        return memento;
    }
 
    public void setMemento(Memento memento) {
        this.memento = memento;
    }
}

测试

    public static void main(String[] args) {
        //初始状态
        Originator originator=new Originator();
        originator.setState("On");
        originator.show();;
        //管理备忘录
        Caretaker caretaker=new Caretaker();
        //保存状态
        caretaker.setMemento(originator.createMemento());
        //发起人修改状态
        originator.setState("Off");
        originator.show();
        //发起人恢复状态
        originator.recoverMemento(caretaker.getMemento());
        originator.show();
    }

目录
相关文章
|
6天前
|
设计模式 存储 Java
Java设计模式之备忘录模式详解
Java设计模式之备忘录模式详解
|
2月前
|
设计模式 存储 Go
[设计模式 Go实现] 行为型~备忘录模式
[设计模式 Go实现] 行为型~备忘录模式
|
2月前
|
设计模式 存储
【设计模式系列笔记】备忘录模式
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不暴露对象实现细节的情况下捕获并恢复其内部状态。这种模式属于行为型设计模式。备忘录模式通常包含以下几个角色:发起人,备忘录,管理者。
35 0
|
2月前
|
存储 设计模式 安全
探索设计模式的魅力:备忘录模式揭秘-实现时光回溯、一键还原、后悔药、历史的守护者和穿越时空隧道
备忘录模式是一种行为设计模式,允许在不破坏对象封装性的情况下保存和恢复对象的内部状态。该模式通过创建备忘录对象来存储发起人的状态信息,发起人可根据需要创建和恢复备忘录。管理者则负责保存和管理备忘录,但无法访问其内容。备忘录模式简化了状态管理,支持撤销操作和历史记录功能,提高了系统的灵活性和可用性。在实际应用中,备忘录模式常用于文本编辑器、游戏和数据库事务处理等场景,确保对象状态的安全恢复和有效管理。通过备忘录模式,开发人员可以更好地控制对象状态的变化,提升软件系统的健壮性和用户体验。
35 1
探索设计模式的魅力:备忘录模式揭秘-实现时光回溯、一键还原、后悔药、历史的守护者和穿越时空隧道
|
2月前
|
设计模式 存储 Java
小谈设计模式(19)—备忘录模式
小谈设计模式(19)—备忘录模式
|
2月前
|
设计模式 存储 Java
23种设计模式,备忘录模式的概念优缺点以及JAVA代码举例
【4月更文挑战第9天】备忘录模式是一种行为设计模式,它能在不破坏对象封装的前提下,捕获并保存对象的当前状态,以便后面可以恢复到这个状态。
40 0
|
2月前
|
设计模式 存储 数据库
备忘录模式--设计模式
备忘录模式--设计模式
16 0
|
2月前
|
设计模式 存储 Java
【设计模式】备忘录模式
【设计模式】备忘录模式
|
2月前
|
设计模式 存储 Java
浅谈设计模式 - 备忘录模式(十五)
浅谈设计模式 - 备忘录模式(十五)
36 0
|
2月前
|
设计模式 存储 Java
聊聊Java设计模式-备忘录模式
备忘录模式(Memento Design Pattern),也叫快照(Snapshot)模式。指在不违背封装原则前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后恢复对象为先前的状态。
41 0
聊聊Java设计模式-备忘录模式