static void Main(string[] args) { Originator ori = new Originator("状态(1)"); Console.WriteLine(ori.GetState()); Caretaker ct = new Caretaker(); ct.SetMemento(ori.CreateMemento()); ori.SetState("状态(2)"); Console.WriteLine(ori.GetState()); ori.RestoreMemento(ct.GetMemento()); Console.WriteLine(ori.GetState()); }
public static void Main() { Originator originator = new Originator(); CareTaker careTaker = new CareTaker(); originator.ChangeState(new State("状态一")); originator.ChangeState(new State("状态二")); //存储当前状态 string key = originator.GetState().name; careTaker.AddMemento(key, originator.CreateMemento()); originator.ChangeState(new State("状态三")); //恢复到之前备份的某一状态 originator.RestoreFromMemento(careTaker.GetMemento(key)); Debug.Log("目前状态:" + originator.GetState().name); }
static void Main(string[] args) { Originator originator = new Originator(); CareTaker careTaker = new CareTaker(); originator.SetState("State #1"); originator.SetState("State #2"); careTaker.Add(originator.SaveStateToMemento()); originator.SetState("State #4"); Console.WriteLine("Current State: " + originator.GetState()); originator.GetStateFromMemento(careTaker.Get(0)); Console.WriteLine("First saved State: " + originator.GetState()); //originator.GetStateFromMemento(careTaker.Get(1)); //Console.WriteLine("Second saved State: " + originator.GetState()); Console.ReadKey(); }