public static void Memento() { Originator o = new Originator(); Caretaker c = new Caretaker(); o.SetMemento(new Memento { State = "NEW" }); c.Memento.Push(o.Create()); o.SetMemento(new Memento { State = "OTHER" }); o.SetMemento(c.Memento.Pop()); //Console.WriteLine("Originator has state: " + o.) }
public static void Main(string[] args) { // creation pattern lab 10 ICreator[] creators = { new HumanDepartmentCreator(), new GuardCreator(), new EmployeeCreator(), new InspectorCreator() }; foreach (ICreator creator in creators) { IPosition position = creator.FactoryMethod(); position.Greetings(); } // structural pattern 11 Pass pass = new Adapter(); pass.ScreenSay(); // behaviour pattern Memento 12 Originator o = new Originator(); Caretaker c = new Caretaker(); o.State = "Ivanenko Stepan"; c.Memento = o.CreateMemento(); o.State = "Stepanenko Ivan"; c.Memento = o.CreateMemento(); o.State = "Vasylenko Olexandr"; o.SetMemento(c.Memento); // chain responsibility pattern 13 var task1 = new Job("Dry oil around engine", new List <string> { "Rag", "Gas", "Mop" }); var task2 = new Job("Dry flor around circulating pump", new List <string> { "Rag", "Mop" }); var task3 = new Job("Change bearing", new List <string> { "Bearing", "Oil" }); var task4 = new Job("Brew a gap in circulating pump", new List <string> { "Welding machine" }); var task5 = new Job("Repair engine", new List <string> { "Key", "Bearing", "Oil" }); var locksmith = new Locksmith(null); var welder = new Welder(locksmith); var housemaid = new Housemaid(welder); housemaid.HandleJob(task1); housemaid.HandleJob(task2); housemaid.HandleJob(task3); housemaid.HandleJob(task4); housemaid.HandleJob(task5); Console.Read(); }
static void Invock14() { Originator ori = new Originator(); ori.State = "开"; ori.Show(); Caretaker car = new Caretaker(); car.Memento = ori.CreateMemento(); ori.State = "关"; ori.Show(); ori.SetMemento(car.Memento); ori.Show(); }
// Memento public static void TetsMemento() { Console.WriteLine("- {0} -", typeof(Memento).Name); Console.WriteLine(); Originator originator = new Originator(); originator.State = "On"; Console.WriteLine("Current state {0}", originator.State); Caretaker caretaker = new Caretaker(); caretaker.Memento = originator.CreateMemento(); originator.State = "Off "; Console.WriteLine("Changed state {0}", originator.State); originator.SetMemento(caretaker.Memento); Console.WriteLine("First state {0}", originator.State); Console.WriteLine("***************************************"); Console.WriteLine(); }
static void Invock14() { Console.WriteLine("原始状态数据:"); var ori = new Originator { State = "开" }; ori.Show(); Console.WriteLine("备忘状态:"); var car = new Caretaker { Memento = ori.CreateMemento() }; Console.WriteLine("改变原对象状态后:"); ori.State = "关"; ori.Show(); Console.WriteLine("恢复对象状态后:"); ori.SetMemento(car.Memento); ori.Show(); }