コード例 #1
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();
        }
コード例 #2
0
        public static void Main()
        {
            Sandwich veggie = new VeggieSandwich();
            Console.WriteLine(veggie.GetPrice());
            Console.WriteLine(veggie.GetDescription());
            var veggieCheese = new Cheese(veggie);
            Console.WriteLine(veggieCheese.GetPrice());
            Console.WriteLine(veggieCheese.GetDescription());
            var veggieCheeseCorn = new Corn(veggieCheese);
            Console.WriteLine(veggieCheeseCorn.GetPrice());
            Console.WriteLine(veggieCheeseCorn.GetDescription());

            var tuna = new Corn(new Olives(new TunaSandwich()));
            Console.WriteLine(tuna.GetPrice());
            Console.WriteLine(tuna.GetDescription());
        }
コード例 #3
0
        public static void Main()
        {
            Sandwich veggie = new VeggieSandwich();

            Console.WriteLine(veggie.GetPrice());
            Console.WriteLine(veggie.GetDescription());
            var veggieCheese = new Cheese(veggie);

            Console.WriteLine(veggieCheese.GetPrice());
            Console.WriteLine(veggieCheese.GetDescription());
            var veggieCheeseCorn = new Corn(veggieCheese);

            Console.WriteLine(veggieCheeseCorn.GetPrice());
            Console.WriteLine(veggieCheeseCorn.GetDescription());

            var tuna = new Corn(new Olives(new TunaSandwich()));

            Console.WriteLine(tuna.GetPrice());
            Console.WriteLine(tuna.GetDescription());
        }