static void Main(string[] args) { var originator = new Originator <Udemy>(); var careTaker = new CareTaker <Udemy>(); originator.State = new Udemy { DersNo = "01", DersAdi = "Gerekli Kurulumlar" }; careTaker.Add(originator.SetState()); originator.State = new Udemy { DersNo = "29", DersAdi = "Çember Tespiti" }; careTaker.Add(originator.SetState()); originator.GetState(careTaker[0]); Console.WriteLine(originator.State); }
static void Main(string[] args) { var p = new Persona(); p.Nombre = "Pepe"; caretaker.Add(p.saveToMemento()); p.Nombre = "Pepe1"; caretaker.Add(p.saveToMemento()); p.Nombre = "Pepe2"; caretaker.Add(p.saveToMemento()); Memento.Clases.Memento m1 = caretaker.GetMemento(0); Console.WriteLine("Viendo memento 1: " + m1.Estado); Console.WriteLine("Viendo memento 2: " + caretaker.GetMemento(1).Estado); Console.WriteLine("Viendo memento 3: " + caretaker.GetMemento(2).Estado); p.restoreToMemento(m1); p.restoreToMemento(caretaker.GetMemento(1)); Console.ReadKey(); }
public 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()); }
public void SetNewState() //Sets a new state in the memento pattern { needsSaving = true; originator.SetState(lilypondText.Text); careTaker.Add(originator.StoreInMemento()); savedMementos++; currentMemento++; reEvaluateButtons(); }
public void Start() { var originator = new Originator(); var 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"); logger.Info($"Current State: {originator.State}."); originator.GetStateFromMemento(careTaker.Get(0)); logger.Info($"First Saved State: {originator.State}."); originator.GetStateFromMemento(careTaker.Get(1)); logger.Info($"Second Saved State: {originator.State}."); }
//Memento public void Memento() { Pessoa pessoa1 = new Pessoa(1, "Maria"); CareTaker care = new CareTaker(); Console.WriteLine("1:" + pessoa1); care.Add(pessoa1); pessoa1.setPessoa(2, "Marcus"); Console.WriteLine("2:" + pessoa1); care.Recovery(pessoa1, 0); Console.WriteLine("3:" + pessoa1); }
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(); }
static void Main(string[] args) { Stage[] stages = new[] { new Stage(Stage1), new Stage(Stage2), new Stage(Stage3), new Stage(Stage4), new Stage(Stage5), }; Originator originator = new Originator(); CareTaker careTaker = new CareTaker(); originator.SetStage(0); while (true) { int curStage = originator.GetStage(); if (curStage >= stages.Length) { break; } Console.WriteLine("-------------当前关卡 " + (curStage + 1) + "-------------"); careTaker.Add(originator.SaveStateToMemento()); bool isStageWin = stages[curStage].RunStage(new Random().Next(1, 6)); if (isStageWin) { Console.WriteLine("恭喜获胜,即将进入下一关"); originator.SetStage(++curStage); } else { Console.WriteLine("挑战失败,即将重新挑战"); curStage = careTaker.Get().GetStage(); originator.SetStage(curStage); } Console.WriteLine("------------------------------------"); Thread.Sleep(1000); } Console.WriteLine("恭喜通过所有关卡"); }
public static void TestMemento() { Console.WriteLine("----------------------Memento----------------------"); CareTaker careTaker = new CareTaker(); User user1 = new User("Alice", "+37064586339", new List <string> { "Dancing", "Swimming" }); User user2 = new User("Bob", "+37074185239", new List <string> { "Boxing" }); careTaker.Add(user1.CreateMemento()); user1.UpdateState(new List <string> { "Sports", "Fishing" }); UserMemento memento = careTaker.GetMemento(); user1.GetMemento(memento); user2.GetMemento(memento); Console.WriteLine("---------------------------------------------------\n"); }
public void SaveItem() { originator.SetState(item); careTaker.Add(originator.SaveStateToMemento()); }
static void Main(string[] args) { /** * ITERATOR **/ ConcreteAggregate collection = new ConcreteAggregate(); Iterator.Iterator iterator = collection.createIterator(); //use to iterator to go through the collection while (!iterator.isDone()) { Console.WriteLine(iterator.Next().ToString()); } /** * OBSERVER **/ Subject subject = new ConcreteSubject(SubjectState.Red); subject.Attach(new ConcreteObserver()); subject.Attach(new ConcreteObserver()); subject.Attach(new ConcreteObserver()); ((ConcreteSubject)subject).SubjectState = SubjectState.Blue; /** * DECORATOR **/ //we create a class with a base function Component component = new ConcreteComponent(); //we create the function we want the add to the first class Decorator.Decorator decorator = new ConcreteDecorator(); //the decorator gets the functionality of the class we want to extend decorator.SetBaseFuntionality(component); //both ops are called decorator.Operation(); /** * COMMAND **/ Command.Command command = new ConcreteCommand(new Receiver()); //create an invoker which in turn calls the command which IN TURN calls the receiver Invoker invoker = new Invoker(); invoker.SetCommand(command); invoker.ExecuteCommand(); /** * COMPOSITE **/ //instanciate differents persons Composite.Component component1 = new Composite.Composite("Bob"); Composite.Component component2 = new Composite.Composite("Patrick"); Composite.Component component3 = new Composite.Composite("Johny"); Composite.Component component4 = new Composite.Composite("Pierre"); //affects differents persons to a superior component1.Add(component2); component2.Add(component3); component2.Add(component4); //default method for every objects in the tree component1.Operation(); /** * MEMENTO **/ Originator originator = new Originator(); CareTaker careTaker = new CareTaker(); //create a couple of states originator.State = "state1"; originator.State = "state2"; //save at some point careTaker.Add(originator.SaveToMemento()); originator.State = "state3"; //restore state at the time of the save originator.RestoreStateFromMemento(careTaker.Get(0)); Console.WriteLine(originator.State); Console.ReadKey(); }
public void SetState(SavedState _savedState)// string[] _imgList, TaskState _stateTask) { m_originator.SetState(_savedState); m_carTaker.Add(m_originator.SaveToMemento()); }
// Singleton done // Factory done // Strategy done // Observer done // Adapter done // Decorator done // Facade done // Command done // Template Method - zaidimo temos // State - zaidimo busena // Proxy - // Iterator, Composite, Flyweight // Chain of Responsibility // Null Object - score null // Memento - restart/resume game // Visitor - when enemies die, they visit visitor // Interpreter - custom game mod public Form1() { InitializeComponent(); instance = this; //Singleton and Adapter logger.LogMessage("Adapter Works!"); guiLogger.LogMessage("Gui Logger Works!"); pacman = new Classes.Pacman(false); MoveDown moveDown = new MoveDown(pacman); MoveUp moveUp = new MoveUp(pacman); MoveLeft moveLeft = new MoveLeft(pacman); MoveRight moveRight = new MoveRight(pacman); //Command pacman.Move(moveDown); pacman.Move(moveUp); pacman.Move(moveLeft); pacman.Move(moveRight); //Strategy Enemy enemy = new Enemy(new AiAmbusher()); enemy.SelectStrategy(); enemy.strategy = new AiRandom(); enemy.SelectStrategy(); //Observer pacman.Attach(enemy); pacman.State = true; //Abstract factory AbstractFactory candyFactory = new CandyFactory(); ICandy candy1 = candyFactory.GetCandy("small"); candy1.CreateCandy(); ICandy candy2 = candyFactory.GetCandy("big"); candy2.CreateCandy(); ICandy candy3 = candyFactory.GetCandy("cherry"); candy3.CreateCandy(); ICandy candy4 = candyFactory.GetCandy("BANANA"); candy4.CreateCandy(); AbstractFactory colorFactory = new ColorFactory(); IColor color1 = colorFactory.GetColor("yellow"); color1.CreateColor(); IColor color2 = colorFactory.GetColor("red"); color2.CreateColor(); //Facade FoodFacade food = new FoodFacade(); food.CreateRedCherry(); food.CreateRedSmall(); food.CreateYellowBanana(); food.CreateYellowBig(); //Decorator with Template Method pacman.weapon = new Gun(); Debug.WriteLine(pacman.weapon.Shoot()); pacman.weapon = new Cannon(pacman.weapon); Debug.WriteLine(pacman.weapon.Shoot()); pacman.weapon = new SpeedTrap(pacman.weapon); Debug.WriteLine(pacman.weapon.Shoot()); // State // Changes game state from resumed to paused and vice versa StateContext stateContext = new StateContext(); StateResumed stateResumed = new StateResumed(); StatePaused statePaused = new StatePaused(); stateResumed.Handle(stateContext); Console.WriteLine(stateContext.GetState().GetString()); statePaused.Handle(stateContext); Console.WriteLine(stateContext.GetState().GetString()); // Proxy // Loads background image for gameboard IBackgroundImage image = new ProxyBackgroundImage("Background1.jpg"); image.Display(); Console.WriteLine(""); // Image will not be loaded from disk again image.Display(); // Flyweight // Pattern used to generate obstacles based on their length for (int i = 0; i < 8; i++) { //Creating duplicate objects Obstacle obs = ObstacleFactory.GetObstacle(i < 4 ? i : i / 2); obs.SetX(4); obs.SetY(4); obs.SetRotation(0); obs.Draw(); } // Chain of responsibility // For handling scores AllScoresHandler handler1 = new NullObject(); AllScoresHandler handler2 = new BonusHandler(); AllScoresHandler handler3 = new PointsHandler(); handler1.SetNextHandler(handler2); handler2.SetNextHandler(handler3); int[] points = { 0, 15, 5, 10, -5, 16, 18, 0, 0, 13, 1, 2, 3 }; foreach (int point in points) { handler1.HandleScore(point); } Console.WriteLine("Final points: " + Highscore.Instance.score); // Mediator // Implemented chatroom Chatroom chatroom = new Chatroom(); Participant player = new Participant("Player"); Participant spectator1 = new Participant("Spectator1"); Participant spectator2 = new Participant("Spectator2"); chatroom.Register(player); chatroom.Register(spectator1); chatroom.Register(spectator2); player.Send("Spectator1", "Hello, spectator!"); spectator1.Send("Player", "Hello, player!"); spectator2.Send("Player", "Hey, don't forget me!"); // Memento // Saving player score for later use CareTaker careTaker = new CareTaker(); careTaker.Add(Highscore.Instance.SetMemento()); Console.WriteLine("Memento saved state: " + careTaker.Get(0).GetScore()); Highscore.Instance.score = 2222; careTaker.Add(Highscore.Instance.SetMemento()); Console.WriteLine("Memento saved state: " + careTaker.Get(1).GetScore()); Console.WriteLine("Restoring to first memento."); Highscore.Instance.SetMemento(careTaker.Get(0)); Console.WriteLine("Restored score is: " + Highscore.Instance.score); // Interpreter // Eating yellow banana will binary shift your score to the left and add 10 points to the result Console.WriteLine("Score before interpreter: " + Highscore.Instance.score); Counter originalCounter = new ConcreteCounter(Highscore.Instance.score); Counter bananaCounter = new ConcreteCounter(10); Counter counter = new ShiftCounter(bananaCounter, originalCounter); Highscore.Instance.score = counter.Count(); Console.WriteLine("Score before interpreter: " + Highscore.Instance.score); }
private void HistoryView_SelectedChange(object sender, PathEventArgs e) { fileSystem.Selected = fileSystem.FindDirectory(e.Path); careTaker.Add(fileSystem.Save()); SetUpMove(careTaker.HasPrevious, careTaker.HasNext, GetParent(fileSystem.Selected.Path) != null); }