亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java備忘錄模式實現狀態恢復

發布時間:2024-09-29 19:20:31 來源:億速云 閱讀:82 作者:小樊 欄目:編程語言

備忘錄模式(Memento Pattern)是一種行為設計模式,它允許在不破壞封裝性的前提下捕獲一個對象的內部狀態,并在該對象之外保存這個狀態。以后可以恢復對象到這個狀態。

在 Java 中實現備忘錄模式主要包括三個角色:

  1. Originator(發起人):記錄當前時刻它的內部狀態,并可以使用備忘錄對象恢復到之前的狀態。
  2. Memento(備忘錄):負責存儲發起人的內部狀態,并可防止發起人以外的對象訪問備忘錄。
  3. Caretaker(管理者):負責保存好備忘錄對象,且不能對備忘錄的內容進行操作或檢查。

下面是一個簡單的 Java 代碼示例,展示如何使用備忘錄模式實現狀態恢復:

import java.util.HashMap;
import java.util.Map;

// 發起人類
class Originator {
    private String state;

    public String getState() {
        return state;
    }

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

    // 保存狀態到備忘錄
    public Memento saveToMemento() {
        return new Memento(state);
    }

    // 恢復狀態從備忘錄
    public void restoreFromMemento(Memento memento) {
        this.state = memento.getState();
    }
}

// 備忘錄類
class Memento {
    private String state;

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

    public String getState() {
        return state;
    }
}

// 管理者類
class Caretaker {
    private Map<String, Memento> mementoList = new HashMap<>();

    public void addMemento(String key, Memento memento) {
        mementoList.put(key, memento);
    }

    public Memento getMemento(String key) {
        return mementoList.get(key);
    }
}

public class MementoPatternDemo {
    public static void main(String[] args) {
        Originator originator = new Originator();
        Caretaker caretaker = new Caretaker();

        originator.setState("State1");
        System.out.println("Current state: " + originator.getState());
        caretaker.addMemento("key1", originator.saveToMemento());

        originator.setState("State2");
        System.out.println("Current state: " + originator.getState());
        caretaker.addMemento("key2", originator.saveToMemento());

        originator.restoreFromMemento(caretaker.getMemento("key1"));
        System.out.println("Restored state: " + originator.getState());
    }
}

在這個例子中,Originator 類記錄當前狀態并提供了保存和恢復狀態的方法。Memento 類負責存儲狀態信息。Caretaker 類負責管理備忘錄對象,可以保存和獲取備忘錄。在 main 方法中,我們創建了一個 Originator 對象,并使用 Caretaker 對象保存和恢復狀態。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

常熟市| 远安县| 象州县| 邓州市| 玉门市| 汶川县| 溧阳市| 甘孜| 海盐县| 平谷区| 五大连池市| 阿拉尔市| 玉屏| 磴口县| 恩施市| 丽江市| 合作市| 元朗区| 屯门区| 沙雅县| 保山市| 石屏县| 博爱县| 武义县| 东丰县| 汉沽区| 板桥市| 蕉岭县| 枞阳县| 普洱| 安乡县| 肇源县| 永善县| 洪泽县| 南充市| 吉林市| 阳江市| 房产| 舞阳县| 冕宁县| 探索|