public IDrink MakeDrink(string name, Strength strength, Amount sugar, Amount milk, Blend blend) { IDrink drink = new Drink(name, strength, sugar, milk, blend); switch (name) { case "Coffee": drink = new Coffee(drink); break; case "Espresso": drink = new Espresso(drink); break; case "Capuccino": drink = new Capuccino(drink); break; case "Wiener Melange": drink = new WienerMelange(drink); break; case "Café au Lait": drink = new CafeAuLait(drink); break; case "Chocolate": drink = new Chocolate(drink); break; case "Chocolate Deluxe": drink = new Chocolate(drink, true); break; case "Tea": drink = new Tea(drink); break; case "CoffeeChoc": drink = new Chocolate(new Coffee(drink)); break; case "IrishCoffee": drink = new CreamDecorator(new Whiskey(new Coffee(drink))); break; case "SpanishCoffee": drink = new CreamDecorator(new Cointreau(new Cognac(new Coffee(drink)))); break; case "ItalianCoffee": drink = new CreamDecorator(new Amaretto(new Coffee(drink))); break; } return(drink); }
private void SetupDrinkStrategies() { _drinks = new Dictionary <string, IDrink>(); _drinks["Coffee"] = new Coffee(_drinkStrength); _drinks["Espresso"] = new Espresso(); _drinks["Capuccino"] = new Capuccino(); _drinks["Wiener Melange"] = new WienerMelange(); _drinks["Café au Lait"] = new CafeAuLait(); _drinks["Chocolate"] = new HotChocolateAdapter(false); _drinks["Chocolate Deluxe"] = new HotChocolateAdapter(true); _drinks["Tea"] = new TeaAdapter(); _drinks["Special"] = new SpecialCoffeeAdapter(); }