コード例 #1
0
        static void Main(string[] args)
        {
            #region Sandwich

            SandwichBase mySandwich = new VeggieSandwich();

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

            mySandwich = new Cheese(mySandwich);
            Console.WriteLine(mySandwich.GetPrice());
            Console.WriteLine(mySandwich.GetDescription());

            mySandwich = new Olives(mySandwich);
            Console.WriteLine(mySandwich.GetPrice());
            Console.WriteLine(mySandwich.GetDescription());

            #endregion

            #region Pizza

            var pizza = new PizzaBase();

            pizza = new OlivesDecorator(pizza);
            pizza = new MushroomsDecorator(pizza);
            pizza = new PepperoniDecorator(pizza);
            pizza = new PineappleDecorator(pizza);

            Console.WriteLine($"Pizza Description: {pizza.Description}");

            #endregion
        }
コード例 #2
0
        /// <summary>
        /// Funkcja służy do dodania pizzy do listy zamówień
        /// </summary>
        public void AddPizza(int number)
        {
            // Tworzymy obiekt pizzy
            Pizza pizza = new Pizza();

            // Dodajemy składniki znajdujące się w każdej pizzy
            pizza = new TomatoSauceDecorator(pizza);
            pizza = new CheeseDecorator(pizza);
            // Składniki specjalne pizz
            switch (number)
            {
            case 1:
                orders.Add(pizza);
                break;

            case 2:
                pizza = new MushroomsDecorator(pizza);
                orders.Add(pizza);
                break;

            case 3:
                pizza = new HamDecorator(pizza);
                orders.Add(pizza);
                break;

            case 4:
                pizza = new SalamiDecorator(pizza);
                orders.Add(pizza);
                break;
            }
        }
コード例 #3
0
        static void Main(string[] args)
        {
            IPizza myPizza = new MushroomsDecorator(new HamDecorator(new BasicPizza()));

            Console.WriteLine(myPizza.GetCost());

            IPizza myPizzaWithLog = new LogDecorator(new BasicPizza());

            myPizzaWithLog = new LogDecorator(new HamDecorator(myPizzaWithLog));
            myPizzaWithLog = new LogDecorator(new MushroomsDecorator(myPizzaWithLog));
        }