static void Main(string[] args) { IBeverage beverage = new DarkRoast(); System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n"); beverage = new Soy(beverage); System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n"); beverage = new Whip(beverage); System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n"); beverage = new Mocha(beverage); System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n"); beverage = new Mocha(beverage); System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n"); beverage = new Whip(beverage); System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n"); beverage = new Whip(beverage); System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n"); beverage = new Whip(beverage); System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n"); beverage = new Whip(beverage); System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n"); beverage = new Whip(beverage); System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n"); beverage = new Whip(beverage); System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n"); Console.ReadLine(); }
static void TestDecorator() { IBeverage beverage = new Espresso(); beverage = new Mocha(beverage); beverage = new Mocha(beverage); beverage = new Whip(beverage); Console.WriteLine($"Cost:{{{beverage.GetCost()}}}"); Console.WriteLine($"Order details: {beverage.GetName()}"); }
static void Decorator() { Beverage beverage1 = new Espresso(); Console.WriteLine(beverage1.GetDescription()); Console.WriteLine(beverage1.GetCost()); Beverage beverage2 = new Espresso(); beverage2 = new Mocha(beverage2); Console.WriteLine(beverage2.GetDescription()); Console.WriteLine(beverage2.GetCost()); Beverage beverage3 = new Espresso(); beverage3 = new Mocha(beverage3); beverage3 = new Whip(beverage3); Console.WriteLine(beverage3.GetDescription()); Console.WriteLine(beverage3.GetCost()); }
// The abstract Coffee class defines the functionality of Coffee implemented by decorator public void TestDecorater() { Coffee c = new SimpleCoffee(); Console.WriteLine("Cost: " + c.GetCost() + "; Ingredients: " + c.GetIngredients()); c = new Milk(c); Console.WriteLine("Cost: " + c.GetCost() + "; Ingredients: " + c.GetIngredients()); c = new Sprinkles(c); Console.WriteLine("Cost: " + c.GetCost() + "; Ingredients: " + c.GetIngredients()); c = new Whip(c); Console.WriteLine("Cost: " + c.GetCost() + "; Ingredients: " + c.GetIngredients()); // Note that you can also stack more than one decorator of the same type c = new Sprinkles(c); Console.WriteLine("Cost: " + c.GetCost() + "; Ingredients: " + c.GetIngredients()); }
public static void RunStarBuck() { Console.WriteLine("StarBuck Coffe Order: "); Beverage beverage = new Espresso(); Console.WriteLine(string.Format("{0} : ${1}", beverage.GetDescription(), beverage.GetCost())); Beverage beverage2 = new DarkRoast(); beverage2 = new Mocha(beverage2); beverage2 = new SteamMilk(beverage2); beverage2 = new Whip(beverage2); Console.WriteLine(string.Format("{0} : ${1}", beverage2.GetDescription(), beverage2.GetCost())); }