Exemplo n.º 1
0
        static void Main(string[] args)
        {
            //真的鸭子嘎嘎叫 木头鸭子吱吱叫 橡皮鸭子唧唧叫
            Duck duck = new Duck();

            duck.Name = "鸭子";


            WoodDuck wd = new WoodDuck();

            wd.Name = "木鸭子";


            XiangPiDuck xpd = new XiangPiDuck();

            xpd.Name = "橡皮鸭子";

            Duck[] newDuck = { duck, wd, xpd };
            for (int i = 0; i < newDuck.Length; i++)
            {
                newDuck[i].Talk();
            }

            Console.ReadKey();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            /*Cada uno de los siguientes patos comparten comportamientos, pero no todos lo
             * aplican de la misma manera.
             *
             * La herencia no es una opción debido a que cada nueva especie de pato agregado
             * debería sobrescribir su comportamiento y si se quisiera hacer una modificación
             * en el comportamiento todos deberían ser modificados
             * o alguien podría modificar el comportamiento de la clase padre y afectar a todos
             * los demás,
             *
             * vamos a la clase Duck en la carpeta Ducks para ver cómo funciona*/

            AlabioDuck aliboDuck = new AlabioDuck();

            aliboDuck.Display();
            Console.WriteLine("presione cualquier tecla para continuar...");
            Console.ReadLine();
            MallardDuck mallardDuck = new MallardDuck();

            mallardDuck.Display();
            Console.WriteLine("presione cualquier tecla para continuar...");
            Console.ReadLine();
            RubberDuck rubberDuck = new RubberDuck();

            rubberDuck.Display();
            Console.WriteLine("presione cualquier tecla para continuar...");
            Console.ReadLine();
            WoodDuck woodDuck = new WoodDuck();

            woodDuck.Display();
            Console.WriteLine("FIN \npresione cualquier tecla para continuar...");
            Console.ReadLine();
            /*Cada uno de estos patos define su comportamiento, entra a cualquier clase de los patos para verlo*/
        }
Exemplo n.º 3
0
        private static void Main(string[] args)
        {
            Console.WriteLine("**** Wood Duck ****");
            var woodDuck = new WoodDuck();

            woodDuck.ShowInfo();

            Console.WriteLine("**** Jet Pack Duck ****");
            var robotDuck = new JetPackDuck();

            robotDuck.ShowInfo();

            Console.WriteLine("**** Default Duck ****");
            var defaultDuck = new DefaultDuck();

            defaultDuck.ShowInfo();

            Console.WriteLine("**** Turkey Before adapter ****");
            var turkey = new DefaultTurkey();

            turkey.ShowInfo();
            turkey.MakeGobble();
            Console.WriteLine("**** Turkey After adapter ****");
            var turkeyAdapted = new TurkeyAdapter(turkey);

            turkeyAdapted.ShowInfo();
            turkeyAdapted.MakeQuack();

            var demonDuckmenu  = new DemonDucksMenu();
            var hollyDucksMenu = new HollyDucksMenu();
            var waitress       = new Waitress(demonDuckmenu, hollyDucksMenu);

            waitress.PrintMenu();

            MeatBase grillDuck = new GrillDuck();

            grillDuck = new ExtraCheese(grillDuck);
            grillDuck = new GrillVegetables(grillDuck);
            Console.WriteLine($"Name:{grillDuck.Name}\n Count:{grillDuck.Price()}");
            MeatBase grillTurkey = new GrillTurkey();

            grillTurkey = new ExtraCheese(grillTurkey);
            Console.WriteLine($"Name:{grillTurkey.Name}\n Count:{grillTurkey.Price()}");

            Console.WriteLine("**** DUCK FABRIC ****");

            var single = Singleton.getInstance();

            //Pack duck: choose duck and ducks count
            single.PackDuck(woodDuck, 13);
            single.PackDuck(defaultDuck, 6);
            single.PackDuck(robotDuck, 46);
            single.PackDuck(turkeyAdapted, 6);
            single.PackDuck(woodDuck, 14);// exept test
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            BaseDuck duck = new OrdinaryDuck();

            duck.Display();
            duck = new WoodDuck();
            duck.Display();
            duck = new ExoticDuck();
            duck.Display();
            duck.setFlyBehavior(new DoNotFly());
            duck.Display();
            Console.Read();
        }
Exemplo n.º 5
0
        public void teste()
        {
            MallardDuck patomal = new MallardDuck();

            patomal.display();
            patomal.grasnar();
            patomal.fly();
            Console.WriteLine("\n");

            RedHeadDuck patover = new RedHeadDuck();

            patover.display();
            patover.fly();
            patover.grasnar();
            Console.WriteLine("\n");


            RubberDuck patoborra = new RubberDuck();

            patoborra.display();
            patoborra.grasnar();
            patoborra.fly();
            Console.WriteLine("\n");

            StellDuck patomet = new StellDuck();

            patomet.display();
            patomet.grasnar();
            patomet.fly();
            Console.WriteLine("\n");

            WoodDuck patomad = new WoodDuck();

            patomad.display();
            patomad.grasnar();
            patomad.fly();
            Console.WriteLine("\n");

            LetraB b = new LetraB();

            b.resposta();
            Console.WriteLine("\n");

            LetraC c = new LetraC();

            c.resposta();
            Console.WriteLine("\n");
        }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            // 这种策略模式,必须知道有什么功能,否则出现错误
            // 行为都是一样的,虽然行为是组合的,但感觉就不是那么会事
            Duck woodduck = new WoodDuck();

            woodduck.Display();
            //woodduck.FlyBehavior.Fly();
            //woodduck.Quackbehavior.Quack();
            woodduck.SweepingBehavior.Swimming();

            RubberDuck rubberDuck = new RubberDuck();

            rubberDuck.Display();
            rubberDuck.SweepingBehavior.Swimming();
            Console.ReadLine();
        }
Exemplo n.º 7
0
        static void Main(string[] args)
        {
            // 接口小练习

            // 什么时候用虚方法实现多态?
            // ->
            // 什么时候用抽象类来实现多态?
            // ->
            // 什么时候用接口来实现多态?
            // ->


            // 真的鸭子会游泳, 木头鸭子不会游泳, 橡皮鸭子会游泳
            RealDuck    realDuck    = new RealDuck();
            WoodDuck    woodDuck    = new WoodDuck();
            EreaserDuck ereaserDuck = new EreaserDuck();

            realDuck.CanSwimMing();
            ereaserDuck.CanSwimMing();

            Console.ReadKey();
        }