Exemplo n.º 1
0
        public static void Run()
        {
            Console.WriteLine($"{Environment.NewLine}*** FLYWEIGHT PATTERN ***{Environment.NewLine}");

            BikeRace race = new BikeRace();

            // Setup an array of bike types we want to use
            BikeType[] racingBikes =
            {
                BikeType.Road,
                BikeType.Mountain,
                BikeType.Hybrid,
                BikeType.Mountain,
                BikeType.Hybrid,
                BikeType.Road,
                BikeType.Road,
                BikeType.Mountain,
                BikeType.Hybrid
            };

            foreach (BikeType type in racingBikes)
            {
                race.GetCompetitor(type).Ride();
            }
        }
Exemplo n.º 2
0
        public void BikeRace_Save_SavesBikeRace()
        {
            // Arrange
            BikeRace race = new BikeRace(new string[] { "Tom", "Dick", "Harry" });

            // Act
            race.RunToCheckPoint();
            CheckPointSave checkpointOne = new CheckPointSave(race.Save());

            race.RunToCheckPoint();

            // Assert
            Assert.AreNotSame(race.GetRace(), checkpointOne.Restore());
        }
Exemplo n.º 3
0
        public static void Run()
        {
            Console.WriteLine($"{Environment.NewLine}*** MEMENTO PATTERN ***{Environment.NewLine}");

            BikeRace race = new BikeRace(new string[] { "Tom", "Dick", "Harry", "Bill", "Jim", "Rick", "Fred", "Joe", "Dan", "Gav", "Mark", "Henry" });

            // Run to first checkpoint
            race.RunToCheckPoint();
            race.DisplayTheRace();

            CheckPointSave checkpointOne = new CheckPointSave(race.Save());

            race.RunToCheckPoint();
            race.DisplayTheRace();

            // Return to the saved state
            race.Restore(checkpointOne.Restore());
            race.DisplayTheRace();
        }