コード例 #1
0
ファイル: Program.cs プロジェクト: ezgiakar/DesignPatterns
        static void Main(string[] args)
        {
            Book book = new Book
            {
                Author = "Umberto Eco",
                Title  = "Gülün Adı",
                Isbn   = "123456"
            };

            book.ShowBook();

            CareTaker history = new CareTaker();

            history.Memento = book.CreateUndo();

            book.Isbn  = "654321";
            book.Title = "GÜLÜN TADI";

            book.ShowBook();

            book.RestoreFromUndo(history.Memento);
            book.ShowBook();

            Console.ReadLine();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            Originator <StateObject> current = new Originator <StateObject>();

            current.SetState(new StateObject {
                Id = 1, Name = "Object 1"
            });
            CareTaker <StateObject> .SaveState(current);

            current.ShowState();

            current.SetState(new StateObject {
                Id = 2, Name = "Object 2"
            });
            CareTaker <StateObject> .SaveState(current);

            current.ShowState();

            current.SetState(new StateObject {
                Id = 3, Name = "Object 3"
            });
            CareTaker <StateObject> .SaveState(current);

            current.ShowState();

            CareTaker <StateObject> .RestoreState(current, 0);

            current.ShowState();

            Console.ReadKey();
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: cmlbrnc/DesignPatterns
        static void Main(string[] args)
        {
            Book book = new Book
            {
                Isbn   = "12345",
                Title  = "İdiot",
                Author = "Dostoyevski"
            };

            book.ShowBook();

            CareTaker history = new CareTaker();

            history.Memento = book.CreateUndo();

            book.Isbn  = "54321";
            book.Title = "VICTOR HUGO";

            book.ShowBook();

            book.RestoreFromUndo(history.Memento);

            book.ShowBook();

            Console.ReadLine();
        }
コード例 #4
0
        static void Main(string[] args)
        {
            //ana kısımda

            Book book = new Book //bir kitabı yazdık
            {
                Isbn   = "12345",
                Title  = "Sefiller",
                Author = "Victor Hugo"
            };

            book.ShowBook();

            //değiştirmek istersek

            CareTaker history = new CareTaker();

            history.Memento = book.CreateUndo();

            book.Isbn  = "54321";
            book.Title = "VICTOR HUGO";

            book.ShowBook();

            book.RestoreFromUndo(history.Memento); //değişikliklerden vazgeçersek           Memento = hafıza
            book.ShowBook();

            Console.ReadLine();
        }
コード例 #5
0
ファイル: Memento.cs プロジェクト: mkader/Design-Patterns
        public static void Demo()
        {
            Originator o = new Originator()
            {
                State = "1"
            };
            CareTaker ct = new CareTaker();

            o.State = "2";
            ct.Add(o.Memento);

            o.State = "3";
            ct.Add(o.Memento);

            o.State = "4";
            Console.WriteLine("Current State " + o.State);

            o.Memento = ct.Get(0);
            Console.WriteLine("First State " + o.State);

            o.Memento = ct.Get(1);
            Console.WriteLine("Second State " + o.State);

            Console.Read();
        }
コード例 #6
0
        static void Main(string[] args)
        {
            // Çok sık karşımıza çıkmaz ...
            // Bir nesne değişikliğe uğradıktan sonra istendikten sonra
            // Eski haline dönüşünün sağlanması .............(Değişiklerin geri alınması)
            Book book = new Book
            {
                Isbn   = "1234",
                Title  = "Sefiller",
                Author = "Victor Hugo"
            };

            book.ShowBook();

            //Kullanıcı ekranda değişiklikler yaptı

            CareTaker history = new CareTaker();

            //Yedeği oluşturduk
            history.memento = book.CreateUndo();

            book.Isbn  = "54235641";
            book.Title = "VICTOR HUGO";

            book.ShowBook();

            book.RestoreFromUndo(history.memento);

            book.ShowBook();
            Console.ReadLine();
        }
コード例 #7
0
        static void Main(string[] args)
        {
            CareTaker ct = new CareTaker();

            Persona p = new Persona();

            p.SetNombre("Matias");
            p.SetNombre("Juan");

            ct.AgregarMemento(p.SaveToMemento());

            p.SetNombre("Rodrigo");

            ct.AgregarMemento(p.SaveToMemento());

            p.SetNombre("Fede");

            MementoClass m1 = ct.GetMemento(0);
            MementoClass m2 = ct.GetMemento(1);

            Console.WriteLine("Memento 1: {0}", m1.GetSavedState());
            Console.WriteLine("Memento 2: {0}", m2.GetSavedState());

            Console.ReadLine();
        }
コード例 #8
0
        static void Main(string[] args)
        {
            PlayerStatistics p1 = new PlayerStatistics();

            p1.level          = 4;
            p1.score          = 34;
            p1.checkPointTime = DateTime.Now;
            Console.WriteLine("Initial:");
            p1.PrintStatistics();

            CareTaker ct = new CareTaker();

            ct.checkpoint = p1.CreateCheckPoint(p1);
            Console.WriteLine();

            p1.level          = 8;
            p1.score          = 96;
            p1.checkPointTime = DateTime.Now.AddHours(10);
            Console.WriteLine("Updated:");
            p1.PrintStatistics();
            Console.WriteLine();

            p1.RestoreCheckPoint(ct.checkpoint);
            Console.WriteLine("Restored:");
            p1.PrintStatistics();
        }
コード例 #9
0
        public Mediator(PictureBox p)
        {
            startRect    = false;
            rectSelected = false;

            drawings = new ArrayList();
            caretakr = new CareTaker(drawings);
            canvas   = p;
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: kaplunov93/Patterns
        static void Main(string[] args)
        {
            Originator o = new Originator();

            o.State = "On";
            CareTaker c = new CareTaker();

            c.Memento = o.CreateMemento();
            o.State   = "Off";
            o.SetMemento(c.Memento);
            Console.ReadKey();
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: jjokela/DesignPatterns
        static void Main(string[] args)
        {
            var prospect = new SalesProspect
            {
                CustomerNumber = 1,
                Name           = "Erno Perälä",
                Address        = "<unknown>",
                CustomerType   = "Lead"
            };

            Console.WriteLine("Start");
            Console.WriteLine("-----");
            Console.WriteLine("{0}", prospect.ToString());

            var careTaker = new CareTaker();

            careTaker.StoreState(prospect.SaveMemento());

            // change prospect data
            prospect.Address = "Ernolantie 6";
            careTaker.StoreState(prospect.SaveMemento());

            Console.WriteLine("After first change");
            Console.WriteLine("------------------");
            Console.WriteLine("{0}", prospect.ToString());

            // change prospect data again
            prospect.CustomerType = "Prospect";
            careTaker.StoreState(prospect.SaveMemento());

            Console.WriteLine("After second change");
            Console.WriteLine("------------");
            Console.WriteLine("{0}", prospect.ToString());


            // restore to previous state
            prospect.RestoreMemento(careTaker.GetMemento());

            Console.WriteLine("After first restore");
            Console.WriteLine("-------------------");
            Console.WriteLine("{0}", prospect.ToString());

            // restore to previous state
            prospect.RestoreMemento(careTaker.GetMemento());

            Console.WriteLine("After second restore");
            Console.WriteLine("-------------------");
            Console.WriteLine("{0}", prospect.ToString());

            Console.ReadLine();
        }
コード例 #12
0
ファイル: Program.cs プロジェクト: jjokela/DesignPatterns
        static void Main(string[] args)
        {
            var prospect = new SalesProspect
            {
                CustomerNumber = 1,
                Name = "Erno Perälä",
                Address = "<unknown>",
                CustomerType = "Lead"
            };

            Console.WriteLine("Start");
            Console.WriteLine("-----");
            Console.WriteLine("{0}", prospect.ToString());

            var careTaker = new CareTaker();
            careTaker.StoreState(prospect.SaveMemento());

            // change prospect data
            prospect.Address = "Ernolantie 6";
            careTaker.StoreState(prospect.SaveMemento());

            Console.WriteLine("After first change");
            Console.WriteLine("------------------");
            Console.WriteLine("{0}", prospect.ToString());

            // change prospect data again
            prospect.CustomerType = "Prospect";
            careTaker.StoreState(prospect.SaveMemento());

            Console.WriteLine("After second change");
            Console.WriteLine("------------");
            Console.WriteLine("{0}", prospect.ToString());

            // restore to previous state
            prospect.RestoreMemento(careTaker.GetMemento());

            Console.WriteLine("After first restore");
            Console.WriteLine("-------------------");
            Console.WriteLine("{0}", prospect.ToString());

            // restore to previous state
            prospect.RestoreMemento(careTaker.GetMemento());

            Console.WriteLine("After second restore");
            Console.WriteLine("-------------------");
            Console.WriteLine("{0}", prospect.ToString());

            Console.ReadLine();
        }
コード例 #13
0
        static void Main(string[] args)
        {
            Originator originator = new Originator();

            originator.State = "on";

            CareTaker careTaker = new CareTaker();

            careTaker.Memento = originator.CreateMemento();
            System.Console.WriteLine(originator.State);
            originator.State = "off";
            System.Console.WriteLine(originator.State);
            originator.SetMemento(careTaker.Memento);
            System.Console.WriteLine(originator.State);
        }
コード例 #14
0
        public static void EX1()
        {
            CareTaker careTaker = new CareTaker();

            Originator objeto = new Originator();

            objeto.SetState("estado original");

            objeto.ShowState();
            careTaker.AddStep(new Memento.Exemplo1.Memento(objeto.SaveState()));

            objeto.SetState("mutação de estado 1");
            objeto.SetState("mutação de estado 2");

            objeto.RestoreState(careTaker.GetLastStep());
            objeto.ShowState();
        }
コード例 #15
0
ファイル: Program.cs プロジェクト: ugurkryl41/DesignPatterns
        static void Main(string[] args)
        {
            Book book = new Book {
                Isbn = 12345, Title = "Hugo"
            };

            book.ShowBook();
            CareTaker careTaker = new CareTaker();

            careTaker.Memento = book.CreateUndo();

            book.Isbn = 54321;
            book.ShowBook();

            book.RestoreFromUndo(careTaker.Memento);
            book.ShowBook();
        }
コード例 #16
0
        static void Main(string[] args)
        {
            Originator orig      = new Originator();
            CareTaker  careTaker = new CareTaker();

            orig.setState("State1");
            orig.setState("State2");
            careTaker.add(orig.saveStateToMemento());

            orig.setState("State3");
            careTaker.add(orig.saveStateToMemento());

            careTaker.get(0);
            orig.restoreFromMemento(careTaker.get(1));

            Console.Read();
        }
コード例 #17
0
        static void Main(string[] args)
        {
            // 打王前
            GameRole character = new GameRole();

            character.GetInitState();
            character.StateDisplay();

            // 保存進度
            RoleStateCaretaker stateAdmin = new RoleStateCaretaker();

            stateAdmin.Memento = character.SaveState();

            // 打王
            character.Fight();
            character.StateDisplay();

            // 讀取檔案
            character.RecoveryState(stateAdmin.Memento);

            character.StateDisplay();

            Console.WriteLine();

            Originator originator = new Originator();

            // 狀態初始屬性為On
            originator.State = "On";
            originator.Show();

            CareTaker careTaker = new CareTaker();

            // 保存狀態時,由於有了很好的封裝,可以隱藏Originator的實現細節
            careTaker.Memento = originator.CreateMemento();

            // 狀態屬性改為Off
            originator.State = "Off";
            originator.Show();

            // 恢復原初始狀態
            originator.SetMemento(careTaker.Memento);
            originator.Show();

            Console.ReadLine();
        }
コード例 #18
0
ファイル: Program.cs プロジェクト: pelehok/patterns
        static void Main(string[] args)
        {
            Originator originator = new Originator();
            CareTaker  careTaker  = new CareTaker();

            originator.State = "State #1";
            originator.State = "State #2";
            careTaker.Add(originator.SaveStateToMemento());
            originator.State = "State #3";
            careTaker.Add(originator.SaveStateToMemento());
            originator.State = "State #4";
            Console.WriteLine("Current State: " + originator.State);
            originator.GetStateFromMemento(careTaker.Get(0));
            Console.WriteLine("First saved State: " + originator.State);
            originator.GetStateFromMemento(careTaker.Get(1));
            Console.WriteLine("Second saved State: " + originator.State);
            Console.ReadKey();
        }
コード例 #19
0
        static void Main(string[] args)
        {
            Originator originator = new Originator();
            CareTaker  careTaker  = new CareTaker();

            originator.State = "State1";
            originator.State = "State2";

            originator.State = "State3";
            careTaker.Add(originator.SaveStateToMemento());
            originator.State = "State4";
            careTaker.Add(originator.SaveStateToMemento());

            Console.WriteLine(originator.GetStateFromMemento(careTaker.Get(0)));
            Console.WriteLine(originator.GetStateFromMemento(careTaker.Get(1)));

            Console.ReadLine();
        }
コード例 #20
0
ファイル: Program.cs プロジェクト: UtkuMutlu22/DesignPatterns
        static void Main(string[] args)
        {
            Book book = new Book {
                Title = "Sefiller", Author = "Victor Hugo", Isbn = "122334"
            };

            book.ShowBook();

            CareTaker history = new CareTaker();

            history.Memento = book.CreateUndo();
            book.Isbn       = "4545454";
            book.Title      = "SEFILLER";
            book.Author     = "VICTOR HUGO";
            book.ShowBook();

            book.RestoreFromUndo(history.Memento);
            book.ShowBook();
        }
コード例 #21
0
        static void Main(string[] args)
        {
            Book book = new Book {
                Author = "Sabahattin Ali", Isbn = "SA-32545", Title = "Kürk Mantolu Madonna"
            };

            book.ShowBook();

            CareTaker history = new CareTaker();

            history.Memento = book.CreateUndo();
            Thread.Sleep(2000);
            book.Author = "Victor Hugo";
            book.Isbn   = "VH-3254";
            book.Title  = "Sefiller";
            book.ShowBook();
            book.RestoreFromUndo(history.Memento);
            book.ShowBook();
            Console.ReadLine();
        }
コード例 #22
0
        static void Main(string[] args)
        {
            Book book = new Book()
            {
                Isbn   = "12345",
                Title  = "Sefiller",
                Author = "Victor Hugo"
            };

            book.Showbook();
            CareTaker history = new CareTaker();

            history.Memento = book.CreateUndo();
            book.Isbn       = "54321";
            book.Author     = "Okan ERDEMİR";
            book.Showbook();
            book.RestoreFromUndo(history.Memento);
            book.Showbook();
            Console.ReadLine();
        }
コード例 #23
0
ファイル: Memento.cs プロジェクト: NRatel/DesignPatterns
        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);
        }
コード例 #24
0
        static void Main(string[] args)
        {
            Originator origin = new Originator();
            CareTaker  taker  = new CareTaker();

            origin.setState("State #1");
            origin.setState("State #2");
            taker.add(origin.saveStateToMemento());
            origin.setState("State #3");
            taker.add(origin.saveStateToMemento());
            origin.setState("State #4");

            // current state
            Console.WriteLine("Current state: " + origin.getState());
            origin.getStateFromMemento(taker.get(0));
            Console.WriteLine("First saved state: " + origin.getState());
            origin.getStateFromMemento(taker.get(1));
            Console.WriteLine("Second saved state: " + origin.getState());

            Console.Read();
        }
コード例 #25
0
ファイル: Program.cs プロジェクト: war-man/Design-Patterns
        static void Main()
        {
            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");

            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());
        }
コード例 #26
0
ファイル: Program.cs プロジェクト: furkank14/DesignPatterns
        static void Main(string[] args)
        {
            Book book = new Book
            {
                Isbn   = "123456789",
                Title  = "Sefiller",
                Author = "Victor Hugo"
            };

            book.ShowBook();
            CareTaker historyCareTaker = new CareTaker();

            historyCareTaker.Memento = book.CreateUndo();
            book.Isbn  = "271457896";
            book.Title = "SEFİLLER";
            book.ShowBook();

            book.RestoreFromUndo(historyCareTaker.Memento);
            book.ShowBook();

            Console.ReadLine();
        }
コード例 #27
0
        static void Main(string[] args)
        {
            Book book = new Book {
                Isbn = "1234", Title = "Sefiller", Author = "Victor Hugo"
            };

            book.ShowBook();
            CareTaker history = new CareTaker();

            history.Memento = book.CreateUndo();

            book.Isbn  = "4321";
            book.Title = "asdasd";

            book.ShowBook();

            book.RestoreFromUndo(history.Memento);

            book.ShowBook();

            Console.ReadKey();
        }
コード例 #28
0
ファイル: Program.cs プロジェクト: ArifTarp/Design-Patterns
        static void Main(string[] args)
        {
            Book book = new Book {
                Isbn = "12345", Title = "BOOK TITLE", Author = "BOOK AUTHOR"
            };

            book.ShowBook();

            CareTaker history = new CareTaker();

            history.Memento = book.CreateMemento();

            book.Title  = "new book title";
            book.Author = "new book author";
            book.Isbn   = "54321";
            book.ShowBook();

            book.RestoreFromMemento(history.Memento);
            book.ShowBook();

            Console.ReadLine();
        }
コード例 #29
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello Memento Design Pattern!");

            var bankAccount = new BankAccount(100);

            Console.WriteLine(bankAccount.ToString());

            var careTaker = new CareTaker();

            careTaker.CheckPoint = bankAccount.Deposit(100);
            Console.WriteLine($"First deposit: {bankAccount.ToString()}");

            var savePoint2 = bankAccount.Deposit(100);

            Console.WriteLine($"Second deposit: {bankAccount.ToString()}");

            Console.WriteLine("Restore to First deposit");
            bankAccount.Restore(careTaker.CheckPoint);
            Console.WriteLine(bankAccount.ToString());
            Console.ReadKey();
        }
コード例 #30
0
        static void Main(string[] args)
        {
            Book book = new Book
            {
                Isbn   = "123456",
                Title  = "The Witcher",
                Author = "Andrzej Sapkowski",
            };

            book.ShowBook();
            CareTaker history = new CareTaker();

            history.Memento = book.CreateUndo();

            book.Isbn  = "54645";
            book.Title = "Harry Potter";

            book.ShowBook();

            book.RestoreFromUndo(history.Memento);
            book.ShowBook();
        }
コード例 #31
0
        static void Main(string[] args)
        {
            Book book = new Book
            {
                Isbn   = "12345",
                Title  = "Hayvan Çiftliği",
                Author = "George Orwell"
            };

            book.ShowBook();
            CareTaker history = new CareTaker();

            history.Memento = book.CreateUndo();

            book.Isbn  = "12312";
            book.Title = "HAYVAN Çifliği";
            book.ShowBook();

            book.RestoreFromUndo(history.Memento);
            book.ShowBook();
            Console.ReadLine();
        }
コード例 #32
0
ファイル: Program.cs プロジェクト: kaplunov93/Patterns
 static void Main(string[] args)
 {
     Originator o = new Originator();
     o.State = "On";
     CareTaker c = new CareTaker();
     c.Memento = o.CreateMemento();
     o.State = "Off";
     o.SetMemento(c.Memento);
     Console.ReadKey();
 }