Example #1
0
        static void Main(string[] args)
        {
            Beverage beverage = new Espresso();

            Console.WriteLine($"{beverage.GetDescription()} {beverage.Cost()}");

            Beverage beverage2 = new HouseBlend();

            Console.WriteLine($"{beverage2.GetDescription()} {beverage2.Cost()}");
            beverage2 = new Mocha(beverage2);
            beverage2 = new Mocha(beverage2);
            beverage2 = new Whip(beverage2);
            Console.WriteLine($"{beverage2.GetDescription()} {beverage2.Cost()}");

            Beverage beverage3 = new HouseBlend();

            Console.WriteLine($"{beverage3.GetDescription()} {beverage3.Cost()}");
            beverage3 = new Mocha(beverage3);
            beverage3 = new Soy(beverage3);
            beverage3 = new Mocha(beverage3);
            beverage3 = new Whip(beverage3);
            Console.WriteLine($"{beverage3.GetDescription()} {beverage3.Cost()}");

            Console.ReadLine();
        }
Example #2
0
        static void Main(string[] args)
        {
            Beverage bev = new AfricanBlend();

            Console.WriteLine(
                String.Format("{0} - ${1}",
                              bev.GetDescription(),
                              bev.GetCost()));

            bev = new HouseBlend();
            Console.WriteLine(
                String.Format("{0} - ${1}",
                              bev.GetDescription(),
                              bev.GetCost()));

            bev = new Cream(bev);
            Console.WriteLine(
                String.Format("{0} - ${1}",
                              bev.GetDescription(),
                              bev.GetCost()));

            bev = new Cream(bev);
            Console.WriteLine(
                String.Format("{0} - ${1}",
                              bev.GetDescription(),
                              bev.GetCost()));
            Console.ReadLine();
        }
Example #3
0
        static void Main(string[] args)
        {
            Beverage bev = new AfricanBlend();

            Console.WriteLine(
                String.Format("{0} - ${1}",
                              bev.GetDescription(),
                              bev.GetCost()));

            bev = new HouseBlend();
            Console.WriteLine(
                String.Format("{0} - ${1}",
                              bev.GetDescription(),
                              bev.GetCost()));

            bev = new Cream(bev);
            Console.WriteLine(
                String.Format("{0} - ${1}",
                              bev.GetDescription(),
                              bev.GetCost()));

            bev = new Cream(bev);
            Console.WriteLine(
                String.Format("{0} - ${1}",
                              bev.GetDescription(),
                              bev.GetCost()));

            // We'll decorate an interface rather than an abstract base class
            IPizza pizza = new LargePizza();

            Console.WriteLine(
                String.Format("{0} - ${1}",
                              pizza.GetDescription(),
                              pizza.CalculateCost()));

            IPizza cheese = new Cheese(pizza);

            Console.WriteLine(
                String.Format("{0} - ${1}",
                              cheese.GetDescription(),
                              cheese.CalculateCost()));

            IPizza extra = new Cheese(cheese);

            Console.WriteLine(
                String.Format("{0} - ${1}",
                              extra.GetDescription(),
                              extra.CalculateCost()));

            IPizza sausage = new Sausage(extra);

            Console.WriteLine(
                String.Format("{0} - ${1}",
                              sausage.GetDescription(),
                              sausage.CalculateCost()));

            Console.ReadLine();
        }
Example #4
0
        static void Main(string[] args)
        {
            Beverage beverage2 = new Espresso();
            Beverage beverage2 = new HouseBlend();

            Console.WriteLine(beverage2.GetDescription() + " " + beverage2.Cost());
            Beverage beverage3 = new Espresso();

            beverage2 = new Mocka(beverage2);

            Console.WriteLine(beverage2.GetDescription() + " " + beverage2.Cost());
        }