Exemple #1
0
        static void Main(string[] args)
        {
            var gm = new GumballMachine(200, "Tuta");

            for (int i = 0; i < 200; i++)
            {
                gm.InsertQuarter();
                gm.TurnCrank();
            }

            Console.ReadKey();
        }
Exemple #2
0
 public GumballMonitor(GumballMachine machine)
 {
     _machine = machine;
 }
Exemple #3
0
 public SoldOutState(GumballMachine gumballMachine)
 {
     _gumballMachine = gumballMachine;
 }
 public WinnerState(GumballMachine gumballMachine) : base(gumballMachine)
 {
 }
Exemple #5
0
 public SoldOutState(GumballMachine machine)
 {
     this.machine = machine;
 }
 public NoCoinState(GumballMachine gumballMachine, StateFactory stateFactory) : base(gumballMachine, stateFactory)
 {
     _name = this.GetType().Name;
 }
 public HasQuarterState(GumballMachine machine)
 {
     this.machine = machine;
 }
 public HasQuarterState(GumballMachine gumballMachine) : base(gumballMachine)
 {
 }
 public override void InsertQuarter()
 {
     "You inserted a quarter".P();
     GumballMachine.SetState(GumballMachine.HasQuarterState);
 }
Exemple #10
0
        public static void Main(string[] args)
        {
            Console.WriteLine("\n\n\r===========Working with Strategy Pattern=======");

            RedHeadDuck redHeadDuck = new RedHeadDuck();

            redHeadDuck.PerformFly();
            redHeadDuck.PerformQuack();
            redHeadDuck.Swim();
            redHeadDuck.Display();
            Console.WriteLine("\n\rSetting the Behaviour for Ducks that exibit different Behaviours");

            RubberDuck rubberDuck = new RubberDuck();

            rubberDuck.PerformFly();
            rubberDuck.SetFlyBehaviour(new FlyWithRockets());
            rubberDuck.PerformFly();
            rubberDuck.PerformQuack();


            Console.WriteLine("\n\n\r===========Working with Observer Pattern=======");

            WeatherData WeatherData = new WeatherData();

            ForecastDisplay forcastDisplay = new ForecastDisplay(WeatherData);

            WeatherData.WeatherMeasurements(15, 20, 25);

            Console.WriteLine("\n\n\r===========Working with Classic Singleton=======");
            ClassicSingleton classicSingleton = ClassicSingleton.GetInstance();

            classicSingleton.Description();

            Console.WriteLine("\n\n\r===========Working with Static Singleton=======");
            StaticSingleton staticSingleton = StaticSingleton.GetInstance();

            staticSingleton.Description();

            Console.WriteLine("\n\n\r===========Working with Singleton using syncronization=======");
            SingletonUsingSyncronization syncronizedSingleton = SingletonUsingSyncronization.GetInstance();

            syncronizedSingleton.Description();


            Console.WriteLine("\n\n\r===========Working with Factory Design Pattern=======");
            SimplePizzaFactory factory = new SimplePizzaFactory();

            PizzaStore store = new PizzaStore(factory);
            Pizza      pizza = store.OrderPizza("Cheese");

            Console.WriteLine(pizza.ToString());

            Console.WriteLine("\nState Machine Design Pattern");

            GumballMachine machine = new GumballMachine(5);

            Console.WriteLine(machine);

            machine.InsertQuarter();
            machine.EjectQuarter();
            machine.TurnCrank();
            Console.WriteLine(machine);

            Console.WriteLine("\n Working with Iterators");
            DinnerMenu dinnerMenu = new DinnerMenu();

            DesignPatterns.Iterator.Iterator iterator = dinnerMenu.CreateIterator();

            while (iterator.HasNext())
            {
                var current = iterator.Next();
                Console.WriteLine(current);
            }

            Console.WriteLine("\n============================");
            PanCakeHouseMenu panMenu = new PanCakeHouseMenu();

            DesignPatterns.Iterator.Iterator panIterator = panMenu.CreateIterator();

            while (panIterator.HasNext())
            {
                var current = panIterator.Next();
                Console.WriteLine(current);
            }
        }
Exemple #11
0
 // Сcылка на автомат, которая просто сохраняется в переменной экземпляра
 public SoldOutState(GumballMachine _gumballMachine)
 {
     this._gumballMachine = _gumballMachine;
 }
 public override void EjectQuarter()
 {
     "Quarter returned".P();
     GumballMachine.SetState(GumballMachine.NoQuarterState);
 }
Exemple #13
0
 protected BaseState(GumballMachine gumballMachine)
 {
     GumballMachine = gumballMachine;
 }
 public HasCoinState(GumballMachine gumballMachine) : base(gumballMachine)
 {
 }
 public HasQuarterState(GumballMachine gumballMachine)
 {
     GumballMachine = gumballMachine;
 }
Exemple #16
0
 public NoQuarterState(GumballMachine gumballMachine)
 {
     GumballMachine = gumballMachine;
 }
 public StateFactory(GumballMachine gumballMachine, IGumballMachineState startingState)
 {
     _gumballMachine = gumballMachine;
     _startingState  = startingState;
 }
 public SoldState(IView view, GumballMachine gumballMachine)
 {
     this.gumballMachine = gumballMachine;
     this.view           = view;
 }
Exemple #19
0
 public SoldountState(GumballMachine gumballMachine) : base(gumballMachine)
 {
 }
        public static void Run(string[] args)
        {
            int count = 0;

            if (args.Length < 2)
            {
                Console.WriteLine("GumballMachine <name> <inventory>");
                Environment.Exit(1);
            }

            count = int.Parse(args[1]);

            //Step 1: Create an instance of the WCF proxy.

            GumballMachine gumballMachine = new GumballMachine(args[0], count);

            // Step 2: Call the service operations.
            GumballMonitor monitor = new GumballMonitor(gumballMachine);

            Console.WriteLine(gumballMachine);

            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            Console.WriteLine();

            Console.WriteLine(gumballMachine);

            gumballMachine.InsertQuarter();
            gumballMachine.EjectQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.Refill(3);
            Console.WriteLine();

            Console.WriteLine(gumballMachine);

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

            Console.WriteLine(gumballMachine);

            gumballMachine.InsertQuarter();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            gumballMachine.InsertQuarter();
            gumballMachine.TurnCrank();
            Console.WriteLine();

            Console.WriteLine(gumballMachine);

            gumballMachine.Refill(3);

            monitor.Report();

            //Step 3: Closing the client gracefully closes the connection and cleans up resources.
        }
 public GumballMonitor(GumballMachine gumballMachine)
 {
     _gumballMachine = gumballMachine;
 }
 public GumballMachineTests()
 {
     _gumballMachine = new GumballMachine(0);
 }
Exemple #23
0
        static void TestGumballMachineWithState()
        {
            IGumballMachine m = new GumballMachine(5);

            TestGumballMachine(m);
        }
Exemple #24
0
 public BaseState(GumballMachine gumballMachine, StateFactory stateFactory)
 {
     _gumballMachine = gumballMachine;
     _stateFactory   = stateFactory;
     _name           = this.GetType().Name;
 }
Exemple #25
0
 public WinnerState(GumballMachine gumballMachine)
 {
     _gumballMachine = gumballMachine;
 }
Exemple #26
0
 public HasQuarterState(GumballMachine gm)
 {
     this.gm = gm;
 }
Exemple #27
0
 void State.NoQuarterState(GumballMachine gumballMachine)
 {
     this.gumballMachine = gumballMachine;
 }
Exemple #28
0
 // Сcылка на автомат, которая просто сохраняется в переменной экземпляра
 public HasQuarterState(GumballMachine _gumballMachine)
 {
     this._gumballMachine = _gumballMachine;
 }
Exemple #29
0
 public HasQuarterState(GumballMachine gumballMachine)
 {
     _gumballMachine = gumballMachine;
 }
 public WinnerState(GumballMachine machine)
 {
     this.machine = machine;
 }
 public SoldOutState(GumballMachine gumballMachine)
 {
     GumballMachine = gumballMachine;
 }
 public override void EjectQuarter()
 {
     Console.WriteLine("Quarter returned");
     GumballMachine.SetState(GumballMachine.GetNoQuarterState());
 }
 private static GumballMachine CreateGumballMachine(int count)
 {
     GumballMachine gumballMachine = new GumballMachine(count);
     return gumballMachine;
 }
 public StateFactory(GumballMachine gumballMachine)
 {
     _gumballMachine = gumballMachine;
     _startingState  = new ErrorState(_gumballMachine, this, new Exception("Starting state undefined."));
 }