Exemplo n.º 1
0
        public static void Run()
        {
            var rubberDuck = new RubberDuck();
            var wildDuck   = new WildDuck();

            System.Console.WriteLine("Rubber Duck:");
            rubberDuck.Display();

            System.Console.WriteLine("Wild Duck:");
            wildDuck.Display();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            IDog  dog  = new WildDog();
            IDuck duck = new WildDuck();

            dog.Bark();
            duck.Quack();
            dog.Jump();
            duck.Fly();
            DuckAdapter adapterDuck = new DuckAdapter(dog);

            adapterDuck.Quack();
            adapterDuck.Fly();
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            Duck wildDuck  = new WildDuck(new WingsStrategy(), new QuackStrategy());
            Duck smallDuck = new SmallDuck(new ParachuteStrategy(), new SquealStrategy());

            wildDuck.Print();
            wildDuck.DoFly();
            wildDuck.DoQuack();

            smallDuck.Print();
            smallDuck.DoFly();
            smallDuck.DoQuack();

            Console.WriteLine("CHANGE FLY STRATEGY:");
            smallDuck.SetFlyStrategy(new WingsStrategy());
            smallDuck.DoFly();
        }
Exemplo n.º 4
0
        private void InitAnimals()
        {
            WildDuck  ducky       = new WildDuck("Ducky");
            WildCat   brizy       = new WildCat("Brizy");
            WildDog   rony        = new WildDog("Rony");
            WildHorse blackbeauty = new WildHorse("BlackBeauty");
            Zebra     sam         = new Zebra("Sam");
            Monkey    cip         = new Monkey("Cip");
            Elephant  dumbo       = new Elephant("Dumbo");
            Leopard   jack        = new Leopard("Jack");

            animals.Add(ducky);
            animals.Add(brizy);
            animals.Add(rony);
            animals.Add(blackbeauty);
            animals.Add(sam);
            animals.Add(cip);
            animals.Add(dumbo);
            animals.Add(jack);
        }
Exemplo n.º 5
0
        public static void Main(string[] args)
        {
            // First approach (DI and base class of type duck)
            Console.WriteLine("First approach using base class");

            Console.WriteLine("WildDuck using base class");
            var wildDuck = new WildDuck();

            wildDuck.Fly();
            wildDuck.Quack();
            Console.WriteLine("");

            Console.WriteLine("MountainDuck using base class");
            var mountainDuck = new MountainDuck();

            mountainDuck.Fly();
            mountainDuck.Quack();
            Console.WriteLine("");

            Console.WriteLine("RubberDuck using base class");
            var RubberDuck = new RubberDuck();

            RubberDuck.Fly();
            RubberDuck.Quack();
            Console.WriteLine("");

            //
            // Better approach
            Console.WriteLine("Better approach using interfaces");
            //

            // Create fly behaviours
            IFlyable flyingNormal = new FlyingNormal();
            IFlyable flyingHigh   = new FlyingHigh();
            IFlyable wontFly      = new WontFly();

            // Create quack behaviours
            IQuackable quackingLoud = new QuackingLoud();
            IQuackable squeek       = new Squeak();

            // Create wildDuck (flying normal, quacking loud)
            Console.WriteLine("WildDuck-Interface (flying normal, quacking loud");
            var betterWildDuck = new BetterDuckClass(flyingNormal, quackingLoud);

            betterWildDuck.Fly();
            betterWildDuck.Quack();
            Console.WriteLine("");

            // Create mountainDuck (flying high, quacking loud)
            Console.WriteLine("MountainDuck-Interface (flying high, quacking loud");
            var betterMountainDuck = new BetterDuckClass(flyingHigh, quackingLoud);

            betterMountainDuck.Fly();
            betterMountainDuck.Quack();
            Console.WriteLine("");

            // Create rubberDuck (won't fly, squeeks)
            Console.WriteLine("RubberDuck-Interface (won't fly, squeeks");
            var betterRubberDuck = new BetterDuckClass(null, squeek);

            betterRubberDuck.Quack();
            Console.WriteLine("");
        }