diff --git a/src/main/java/com/pancm/design/memento/MementoTest.java b/src/main/java/com/pancm/design/memento/MementoTest.java index fc077c5..11f8091 100644 --- a/src/main/java/com/pancm/design/memento/MementoTest.java +++ b/src/main/java/com/pancm/design/memento/MementoTest.java @@ -1,12 +1,9 @@ package com.pancm.design.memento; -import java.util.ArrayList; -import java.util.List; - /** * @Title: MementoTest - * @Description: - 备忘录模式 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 + * @Description: 备忘录模式 + 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 核心: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 * @Version:1.0.0 * @author pancm @@ -24,24 +21,8 @@ public class MementoTest { 基本角色:备忘录(Memento)角色、发起人(Originator)角色、负责人(Caretaker)角色。 1.备忘录(Memento):主要的功能是包含要被恢复的对象的状态。 2.发起人(Originator):在创建的时候,会在备忘录对象中存储状态。 - 3.负责人(Caretaker):主要是负责从 备忘录对象中恢复对象的状态。 + 3.负责人(Caretaker):主要是负责从备忘录对象中恢复对象的状态。 */ - Originator originator = new Originator(); - CareTaker careTaker = new CareTaker(); - originator.setState("State #1"); - originator.setState("State #2"); - careTaker.add(originator.saveStateToMemento()); - originator.setState("State #3"); - careTaker.add(originator.saveStateToMemento()); - originator.setState("State #4"); - - System.out.println("Current State: " + originator.getState()); - originator.getStateFromMemento(careTaker.get(0)); - System.out.println("First saved State: " + originator.getState()); - originator.getStateFromMemento(careTaker.get(1)); - System.out.println("Second saved State: " + originator.getState()); - - /* * 使用 * 常见场景就是游戏存档,电脑中的 Ctrl+Z撤销功能 @@ -120,59 +101,6 @@ public class MementoTest { } } -/* - * 创建一个备忘录 - */ -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 saveStateToMemento() { - return new Memento(state); - } - - public void getStateFromMemento(Memento Memento) { - state = Memento.getState(); - } -} - -/* - * 设置一个看门者 - */ -class CareTaker { - private List mementoList = new ArrayList(); - - public void add(Memento state) { - mementoList.add(state); - } - - public Memento get(int index) { - return mementoList.get(index); - } -} - //创建一个存档 信息(备忘录) @@ -215,8 +143,6 @@ class Player { this.level = level; this.life = life; } - - //保存信息 public SaveMsg saveStateToMemento() { return new SaveMsg(level,life);