static void Main(string[] args) { Pizza p = new Ham(new Cheese(new LargePizza())); // L Console.WriteLine(p.GetDescription()); Console.WriteLine(p.CalculateCost()); Console.ReadKey(); }
public void Allow_Being_Decorated_With_Cheese_And_Ham() { Pizza largePizza = new LargePizza(); largePizza = new Cheese(largePizza); largePizza = new Ham(largePizza); Assert.Equal("Large Pizza, Cheese, Ham", largePizza.GetDescription()); Assert.Equal(11.25m, largePizza.CalculateCost()); }
public static string Run() { Pizza largePizza = new LargePizza(); // wrap large pizza with our cheese decorator largePizza = new Cheese(largePizza); // wrap our large cheese pizza with our ham decorator largePizza = new Ham(largePizza); return($"{largePizza.GetDescription()} cost: {largePizza.CalculateCost():C2}"); }
public static void Bake() { Pizza pizza = new LargePizza(); Console.WriteLine($"{pizza.CalculateCost()}EUR for {pizza.GetDescription()}"); pizza = new Ham(pizza); Console.WriteLine($"{pizza.CalculateCost()}EUR for {pizza.GetDescription()}"); pizza = new Cheese(pizza); Console.WriteLine($"{pizza.CalculateCost()}EUR for {pizza.GetDescription()}"); pizza = new Corn(pizza); Console.WriteLine($"{pizza.CalculateCost()}EUR for {pizza.GetDescription()}"); pizza = new Cheese(pizza); Console.WriteLine($"{pizza.CalculateCost()}EUR for {pizza.GetDescription()}"); }
public void DoWork() { //客人訂了一份土司,不需要配料,列出他的價格與描述 IBreakfast bf1 = new Toast(); Console.WriteLine("餐點:{0} 價格:{1}", bf1.GetDescription(), bf1.GetCost()); //客人訂了一份貝果,要加"雙倍"火腿,列出他的價格與描述 IBreakfast bf2 = new Bego(); bf2 = new Ham(bf2); bf2 = new Ham(bf2); Console.WriteLine("餐點:{0} 價格:{1}", bf2.GetDescription(), bf2.GetCost()); //客人訂了一份漢堡,要加牛肉 生菜 起司,列出他的價格與描述 IBreakfast bf3 = new Hamburger(); bf3 = new Beef(bf3); bf3 = new Lettuce(bf3); bf3 = new Cheese(bf3); Console.WriteLine("餐點:{0} 價格:{1}", bf3.GetDescription(), bf3.GetCost()); }