Example #1
0
        public void Init()
        {
            duckFactory = new CountingDuckFactory();

            //QuackCounter is Decorator Pattern
            mallardDuck = duckFactory.CreateMallardDuck();
            redheadDuck = duckFactory.CreateRedheadDuck();
            duckCall = duckFactory.CreateDuckCall();
            rubberDuck = duckFactory.CreateRubberDuck();
            gooseDuck = new GooseAdapter(new Goose());//Adapter Pattern

            //Flock is Iterator Pattern
            flockOfDucks = new Flock();

            flockOfDucks.Add(redheadDuck);
            flockOfDucks.Add(duckCall);
            flockOfDucks.Add(rubberDuck);
            flockOfDucks.Add(gooseDuck);

            flockOfMallards = new Flock();

            mallardOne = duckFactory.CreateMallardDuck();
            mallardTwo = duckFactory.CreateMallardDuck();
            mallardThree = duckFactory.CreateMallardDuck();
            mallardFour = duckFactory.CreateMallardDuck();

            flockOfMallards.Add(mallardOne);
            flockOfMallards.Add(mallardTwo);
            flockOfMallards.Add(mallardThree);
            flockOfMallards.Add(mallardFour);

            flockOfDucks.Add(flockOfMallards);
        }