static void Main(string[] args) { var gm = new GumballMachine(200, "Tuta"); for (int i = 0; i < 200; i++) { gm.InsertQuarter(); gm.TurnCrank(); } Console.ReadKey(); }
public GumballMonitor(GumballMachine machine) { _machine = machine; }
public SoldOutState(GumballMachine gumballMachine) { _gumballMachine = gumballMachine; }
public WinnerState(GumballMachine gumballMachine) : base(gumballMachine) { }
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); }
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); } }
// Сcылка на автомат, которая просто сохраняется в переменной экземпляра public SoldOutState(GumballMachine _gumballMachine) { this._gumballMachine = _gumballMachine; }
public override void EjectQuarter() { "Quarter returned".P(); GumballMachine.SetState(GumballMachine.NoQuarterState); }
protected BaseState(GumballMachine gumballMachine) { GumballMachine = gumballMachine; }
public HasCoinState(GumballMachine gumballMachine) : base(gumballMachine) { }
public HasQuarterState(GumballMachine gumballMachine) { GumballMachine = gumballMachine; }
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; }
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); }
static void TestGumballMachineWithState() { IGumballMachine m = new GumballMachine(5); TestGumballMachine(m); }
public BaseState(GumballMachine gumballMachine, StateFactory stateFactory) { _gumballMachine = gumballMachine; _stateFactory = stateFactory; _name = this.GetType().Name; }
public WinnerState(GumballMachine gumballMachine) { _gumballMachine = gumballMachine; }
public HasQuarterState(GumballMachine gm) { this.gm = gm; }
void State.NoQuarterState(GumballMachine gumballMachine) { this.gumballMachine = gumballMachine; }
// Сcылка на автомат, которая просто сохраняется в переменной экземпляра public HasQuarterState(GumballMachine _gumballMachine) { this._gumballMachine = _gumballMachine; }
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.")); }