備忘錄模式
下面是一個簡單的備忘錄模式的示例程式碼,使用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
(管理者類)。發起人類儲存當前狀態、建立備忘錄物件、恢復狀態;備忘錄類儲存狀態資訊;管理者類負責儲存備忘錄物件。
在測試類中,我們建立了一個發起人物件和一個管理者物件。我們透過設定初始狀態、建立備忘錄、修改狀態、恢復狀態的步驟來演示備忘錄模式的使用。透過儲存和恢復備忘錄物件,我們可以在需要時回滾到之前的狀態。
這個簡單的示例展示了備忘錄模式的基本結構和使用方法。實際應用中,可以根據具體需求擴充套件和最佳化備忘錄模式的實現。