Example #1
0
        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());
        }
Example #3
0
        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}");
        }
Example #4
0
        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());
        }