Example #1
0
        // Выдаем два шарика
        public void Dispense()
        {
            gumballMachine.ReleaseBall();

            if (gumballMachine.GetCount() == 0)
            {
                gumballMachine.SetState(gumballMachine.GetSoldOutState());
            }
            // Если в автомате есть второй шарик, освобождаем его
            else
            {
                Console.WriteLine("YOU'RE A WINNER! You got two gumballs for your quarter");
                gumballMachine.ReleaseBall();

                if (gumballMachine.GetCount() > 0)
                {
                    gumballMachine.SetState(gumballMachine.GetNoQuarterState());
                }
                else
                {
                    Console.WriteLine("Oops, out of gumballs!");
                    gumballMachine.SetState(gumballMachine.GetSoldOutState());
                }
            }
        }
        public void Dispense()
        {
            gumballMachine.ReleaseBall();

            if (gumballMachine.GetCount() > 0)
            {
                gumballMachine.SetState(gumballMachine.GetNoQuarterState());
            }
            else
            {
                Console.WriteLine("Oops, out of gumballs!");
                gumballMachine.SetState(gumballMachine.GetSoldOutState());
            }
        }
Example #3
0
 // Классы ConcreteState обрабатывают запросы от Context. Каждый класс предоставляет собственную реализацию запроса. Таким образои,
 // при переходе объекта Context в другое состояние изменяется и его поведение.
 public void InsertQuarter()
 {
     Console.WriteLine("You inserted a quarter");
     gumballMachine.SetState(gumballMachine.GetHasQuarterState());
 }
 public void EjectQuarter()
 {
     Console.WriteLine("Quarter returned");
     gumballMachine.SetState(gumballMachine.GetNoQuarterState());
 }