static void Main(string[] args) { Originator originator = new Originator(); originator.SetState("开始"); originator.Show(); Caretaker caretaker = new Caretaker(); caretaker.SetMemento(originator.CreateMemento()); originator.SetState("停止"); originator.Show(); originator.SetMemento(caretaker.GetMemento()); originator.Show(); GameRole gameRole = new GameRole(); gameRole.Init(); Console.WriteLine("==========="); gameRole.ShowState(); GameStateCaretaker caretakerA = new GameStateCaretaker(); caretakerA.SetGameState(gameRole.SaveState()); Console.WriteLine("==========="); gameRole.DoTask(); gameRole.ShowState(); gameRole.Recover(caretakerA.GetGameState()); gameRole.ShowState(); }
/// <summary> /// 单个撤销 /// </summary> public static void Invoke() { //创建原发器对象 Originator originator = new Originator("状态1"); Console.WriteLine(originator.GetState()); //创建负责人对象 Caretaker caretaker = new Caretaker(); caretaker.SetMemento(originator.CreateMemento()); originator.SetState("状态2"); Console.WriteLine(originator.GetState()); //从负责人对象中取出备忘录对象 originator.RestoreMemento(caretaker.GetMemento()); Console.WriteLine(originator.GetState()); }