Example #1
0
        static void Main(string[] args)
        {
            // Create Instances of Strategies and Contexts.
            Squeak theSqueak = new Squeak ();
            Quack theQuack = new Quack ();
            MuteQuack theMuteQuack = new MuteQuack ();
            FlyWithWings theFly = new FlyWithWings ();
            Flyless theFlyless = new Flyless ();

            Duck magicDuck = new MallardDuck(theQuack, theFly);
            Duck rorschachDuck = new RedheadDuck (theMuteQuack, theFlyless);

            // Call functions.
            magicDuck.display();
            magicDuck.performQuack();
            magicDuck.performFly();
            Console.Out.WriteLine ();

            rorschachDuck.display();
            rorschachDuck.performQuack();
            rorschachDuck.performFly();
            Console.Out.WriteLine ();

            // Assign new Strategies to Instances.
            magicDuck.QuackBehaviour = theSqueak;
            magicDuck.FlyBehaviour = theFlyless;
            rorschachDuck.QuackBehaviour = theQuack;
            rorschachDuck.FlyBehaviour = theFly;

            // Call functions.
            magicDuck.display();
            magicDuck.performQuack();
            magicDuck.performFly();
            Console.Out.WriteLine ();

            rorschachDuck.display();
            rorschachDuck.performQuack();
            rorschachDuck.performFly();

            Console.In.ReadLine();
        }