public static void Main()
        {
            /*https://stackoverflow.com/a/30424503/1650277
             * What problems can the State design pattern solve?
             *
             * An object should change its behavior when its internal state changes.
             * State-specific behavior should be defined independently.
             * That is, new states should be added and the behavior of
             * existing states should be changed independently.
             *
             * Implementing state-specific behavior directly within a class is inflexible because
             * it commits the class to a particular behavior and makes it impossible to add a new state
             * or change the behavior of an existing state later independently from (without changing) the class.
             *
             * Strategy pattern vs State pattern
             * States store a reference to the context object that contains them. Strategies do not.
             * States are allowed to replace themselves (IE: to change the state of the context object to something else), while Strategies are not.
             * Strategies are passed to the context object as parameters, while States are created by the context object itself.
             * Strategies only handle a single, specific task, while States provide the underlying implementation for everything (or most everything) the context object does.
             */

            LegacyTest();
            Console.WriteLine();
            var gumballmachine = new GumballMachine(5);

            gumballmachine.InsertQuarter();
            gumballmachine.TurnCrank();
            gumballmachine.InsertQuarter();
            gumballmachine.TurnCrank();
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            GumballMachine gumballMachine = new GumballMachine(5);

            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();

            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();

            Console.ReadKey();
        }
Beispiel #3
0
        static void Main()
        {
            GumballMachine gumballMachine = new GumballMachine();

            gumballMachine.InsertQuarter();
            gumballMachine.EjectQuarter();
            gumballMachine.TurnCrank();

            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.Dispense();

            Console.ReadLine();
        }
Beispiel #4
0
        static void Main()
        {
            GumballMachine gumballMachine = new GumballMachine(2);

            Console.WriteLine(gumballMachine);

            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();

            Console.WriteLine(gumballMachine);

            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();

            Console.WriteLine(gumballMachine);
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            GumballMachine gumballMachine = new GumballMachine(5);

            gumballMachine.InsertQuarter();
            gumballMachine.TumCrank();

            gumballMachine.InsertQuarter();
            gumballMachine.TumCrank();

            gumballMachine.InsertQuarter();
            gumballMachine.TumCrank();

            gumballMachine.InsertQuarter();
            gumballMachine.TumCrank();

            gumballMachine.InsertQuarter();
            gumballMachine.TumCrank();
        }
Beispiel #6
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var gumballMachine = new GumballMachine(10);

            gumballMachine.InsertQuarter();
            gumballMachine.EjectQuarter();
            gumballMachine.TurnCrank();


            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();

            System.Console.WriteLine(gumballMachine.ToString());

            gumballMachine.Refill(10);
            System.Console.WriteLine(gumballMachine.ToString());
        }
        static void Main(string[] args)
        {
            GumballMachine gumballMachine = new GumballMachine(2);

            Console.WriteLine(gumballMachine);

            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();

            Console.WriteLine(gumballMachine);

            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();

            gumballMachine.Refill(5);
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();

            Console.WriteLine(gumballMachine);

            Console.ReadLine();
        }