コード例 #1
0
ファイル: Program.cs プロジェクト: ait27ru/SimUDuck
        private static void Main()
        {
            var mallardDuck = new MallardDuck();

            mallardDuck.Display();
            mallardDuck.PerformQuack();
            mallardDuck.Swim();
            mallardDuck.PerformFly();
            Console.WriteLine();

            var redheadDuck = new RedheadDuck();

            redheadDuck.Display();
            redheadDuck.PerformQuack();
            redheadDuck.Swim();
            redheadDuck.PerformFly();
            Console.WriteLine();

            var rubberDuck = new RubberDuck();

            rubberDuck.Display();
            rubberDuck.PerformQuack();
            rubberDuck.Swim();
            rubberDuck.PerformFly();
            Console.WriteLine();

            var decoyDuck = new DecoyDuck();

            decoyDuck.Display();
            decoyDuck.Swim();
            Console.WriteLine();

            Console.Write("Press Enter to exit ...");
            Console.ReadLine();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            IFlyBehaviour flyNoWay     = new FlyNoWay();
            IFlyBehaviour flyWithWings = new FlyWithWings();
            Duck          mallardDuck  = new MallardDuck();

            mallardDuck.SetFlyBehaviour(flyWithWings);

            Duck redheadDuck = new RedheadDuck();

            redheadDuck.SetFlyBehaviour(flyWithWings);

            Duck rubberDuck = new RubberDuck();

            rubberDuck.SetFlyBehaviour(flyNoWay);

            Duck decoyDuck = new DecoyDuck();

            decoyDuck.SetFlyBehaviour(flyNoWay);


            List <Duck> listDucks = new List <Duck>
            {
                mallardDuck,
                redheadDuck,
                rubberDuck,
                decoyDuck
            };


            foreach (var duck in listDucks)
            {
                duck.Fly();
            }
        }
コード例 #3
0
        static void Main(string[] args)
        {
            // Pato Bravo
            MallardDuck md = new MallardDuck();
            md.Display();
            md.Swim();
            md.Fly();
            md.Quack();
            System.Console.WriteLine("\n");

            // Pato Cabeça-vermelha
            RedHeadDuck rhd = new RedHeadDuck();
            rhd.Display();
            rhd.Swim();
            rhd.Fly();
            rhd.Quack();
            System.Console.WriteLine("\n");

            // Pato de Borracha
            RubberDuck rd = new RubberDuck();
            rhd.Display();
            rhd.Swim();
            rd.Quack(); // Chia invés de grasnar
            System.Console.WriteLine("\n");

            // Pato de Madeira
            DecoyDuck dd = new DecoyDuck();
            dd.Display();
            dd.Swim();
            System.Console.WriteLine("\n");

            System.Console.ReadKey();
        }
コード例 #4
0
        public static void Main(string[] args)
        {
            //A DEPENDENCY INJECTOR OR FACTORY SHOULD REPLACE ALL THIS DECLARATIONS
            IFlyBehavior canFly  = new FlyWithWings();
            IFlyBehavior cantFly = new FlyNoWay();

            IQuackBehavior quack   = new Quack();
            IQuackBehavior squeack = new Squeack();
            IQuackBehavior mute    = new MuteQuack();

            List <Duck> ducks = new List <Duck>();

            Duck mallardDuck = new MallardDuck(canFly, quack);
            Duck redHeadDuck = new RedHeadDuck(canFly, quack);
            Duck decoyDuck   = new DecoyDuck(cantFly, mute);
            Duck rubberDuck  = new RubberDuck(cantFly, squeack);

            ducks.Add(mallardDuck);
            ducks.Add(redHeadDuck);
            ducks.Add(decoyDuck);
            ducks.Add(rubberDuck);

            //NOW WE WILL MAKE OUR DUCKS DISPLAY FLY AND QUACK
            foreach (Duck duck in ducks)
            {
                duck.Display();
                duck.PerformFly();
                duck.PerformQuack();

                Console.WriteLine("---------------");
            }

            Console.ReadLine();
        }
コード例 #5
0
        public void FakeDucksCantLand()
        {
            RubberDuck rd = new RubberDuck();
            DecoyDuck  dd = new DecoyDuck();

            rd.PerformLand();
            dd.PerformLand();
        }
コード例 #6
0
        public void Test1()
        {
            MallardDuck mallard = new MallardDuck();
            RubberDuck  rubber  = new RubberDuck();
            DecoyDuck   decoy   = new DecoyDuck();
            Duck        model   = new ModelDuck();

            mallard.PerformQuack();
            rubber.PerformQuack();
            decoy.PerformQuack();

            model.PerformFly();
            model.FlyBehavior = new FlyRocketPowered();
            model.PerformFly();
        }
コード例 #7
0
        static void Main(string[] args)
        {
            var ducks = new List <Duck>()
            {
                new Mallard(new FlyWithWingsBehavior(), new QuackBehavior()),
                new WoodDuck(new FlyWithWingsBehavior(), new QuackBehavior()),
                // Making changes in the same spot as another user, and I haven't pulled their changes.
                new WoodDuck(new FlyWithWingsBehavior(), new NoSoundBehavior()),
                new WoodDuck(new NoFlyBehavior(), new QuackBehavior()),
                new RubberDuck(new NoFlyBehavior(), new QuackBehavior()),
                // end of changes.
                // This will simulate changes made by another user.
                new Mallard(new NoFlyBehavior(), new NoSoundBehavior()),
                new RubberDuck(new FlyWithWingsBehavior(), new QuackBehavior()), //yes, a quacking, flying rubber duck
                new DecoyDuck(new NoFlyBehavior(), new QuackBehavior()),
                // End of new ducks
                new RubberDuck(new NoFlyBehavior(), new NoSoundBehavior()),
                new DecoyDuck(new NoFlyBehavior(), new NoSoundBehavior())
            };

            foreach (var duck in ducks)
            {
                Console.WriteLine(duck.ToString());
                duck.Display();
                duck.MakeSound();
                duck.PerformFly();
                if (duck is ICanSwim swimmingDuck)
                {
                    swimmingDuck.Swim();
                }

                Console.WriteLine();
            }

            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Decoy Duck sample");
            var decoyDuck = new DecoyDuck(new NoFlyBehavior(), new NoSoundBehavior());

            decoyDuck.Swim();
            decoyDuck.SetSwimBehavior(new SubmarineSwimBehavior());
            decoyDuck.Swim();

            ShowFlyableThings();

            Console.ReadKey();
        }
コード例 #8
0
        static void Main(string[] args)
        {
            Duck duck = new MallardDuck();

            duck.Display();
            duck.PerformFly();
            duck.PerformQuack();

            Duck model = new DecoyDuck();

            model.Display();
            model.PerformFly();
            model.SetFlyBehavior(new FlyWithWings());
            model.PerformFly();

            Console.ReadLine();
        }
コード例 #9
0
        private static void StrategyPatternRun()
        {
            Console.WriteLine();
            MallardDuck mallard      = new MallardDuck();
            RubberDuck  rubberDuckie = new RubberDuck();
            DecoyDuck   decoy        = new DecoyDuck();

            ModelDuck model = new ModelDuck();

            mallard.PerformQuack();
            rubberDuckie.PerformQuack();
            decoy.PerformQuack();

            model.PerformFly();
            model.FlyBehavior = new FlyRocketPowered();
            model.PerformFly();
        }
コード例 #10
0
        static void Main(string[] args)
        {
            MallardDuck mallard = new MallardDuck();
            RedHeadDuck redHead = new RedHeadDuck();
            RubberDuck  rubber  = new RubberDuck();
            DecoyDuck   decoy   = new DecoyDuck();
            RobotDuck   robot   = new RobotDuck();
            ModelDuck   model   = new ModelDuck();

            PerformDuckFunctions(mallard);
            PerformDuckFunctions(redHead);
            PerformDuckFunctions(rubber);
            PerformDuckFunctions(decoy);
            PerformDuckFunctions(robot);
            PerformDuckFunctions(model);

            model.SetFlyBehaviour(new FlyRocketPowered());
            PerformDuckFunctions(model);

            Console.ReadKey();
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: beqasmile/OOPDuckProject
        static void Main(string[] args)
        {
            FlyNoWay flyNoWayBehavior = new FlyNoWay();
            Squeck   squeck           = new Squeck();

            DecoyDuck decoyDuck = new DecoyDuck(flyNoWayBehavior, squeck);

            decoyDuck.Fly();


            FlyWithWings  flyWithWings  = new FlyWithWings();
            QuackBehavior quackBehavior = new MuteDuck();

            Duck duckMallard = new MallardDuck(flyWithWings, quackBehavior);

            List <Duck> listDuck = new List <Duck>();

            listDuck.Add(decoyDuck);
            listDuck.Add(duckMallard);

            Console.ReadKey();
        }
コード例 #12
0
ファイル: Program.cs プロジェクト: phcbarros/.Net
        static void Main(string[] args)
        {
            Model.Duck duck = new DecoyDuck();

            //pato de decoração
            Console.WriteLine("Comportamentos de um pato de decoração");
            Console.WriteLine("Vôo: {0}", duck.perfomFly());
            Console.WriteLine("Grasnar: {0}", duck.performQuack());
            Console.WriteLine();

            //pato Mallard
            duck = new MallardDuck();
            Console.WriteLine("Comportamentos de um pato Mallard");
            Console.WriteLine("Vôo: {0}", duck.perfomFly());
            Console.WriteLine("Grasnar: {0}", duck.performQuack());
            Console.WriteLine();

            //pato modelo
            duck = new ModelDuck();
            Console.WriteLine("Comportamentos de um pato modelo");
            Console.WriteLine("Vôo: {0}", duck.perfomFly());
            Console.WriteLine("Grasnar: {0}", duck.performQuack());
            Console.WriteLine();

            Console.WriteLine("Mudando o comportamento do pato modelo em tempo de execução");
            Console.WriteLine();

            duck.alterarQuackBehavior(new Squeak());
            duck.alterarFlyBehavior(new FlyRocketPowered());
            Console.WriteLine("Comportamentos de um pato modelo alterado");
            Console.WriteLine("Vôo: {0}", duck.perfomFly());
            Console.WriteLine("Grasnar: {0}", duck.performQuack());



            Console.WriteLine();

            Console.ReadKey();
        }
コード例 #13
0
        static void Main(string[] args)
        {
            // Pato Bravo
            MallardDuck md = new MallardDuck();

            md.Display();
            md.Swim();
            md.Fly();
            md.Quack();
            System.Console.WriteLine("\n");

            // Pato Cabeça-vermelha
            RedHeadDuck rhd = new RedHeadDuck();

            rhd.Display();
            rhd.Swim();
            rhd.Fly();
            rhd.Quack();
            System.Console.WriteLine("\n");

            // Pato de Borracha
            RubberDuck rd = new RubberDuck();

            rhd.Display();
            rhd.Swim();
            rd.Quack(); // Chia invés de grasnar
            System.Console.WriteLine("\n");

            // Pato de Madeira
            DecoyDuck dd = new DecoyDuck();

            dd.Display();
            dd.Swim();
            System.Console.WriteLine("\n");


            System.Console.ReadKey();
        }
コード例 #14
0
        private static void RunDucks()
        {
            Duck duck            = null;
            bool exitApplication = false;

            do
            {
                Console.WriteLine("What do you want to see?\n1)DecoyDuck\n2)MallardDuck\n3)RubberDuck\nanykey to exit");
                Console.WriteLine(string.Empty);
                var response = Console.ReadLine();

                switch (response)
                {
                case "1":
                    duck = new DecoyDuck();
                    break;

                case "2":
                    duck = new MallardDuck();
                    break;

                case "3":
                    duck = new RubberDuck();
                    break;

                default:
                    exitApplication = true;
                    break;
                }
                if (!exitApplication)
                {
                    duck.Display();
                    duck.PerformFly();
                    duck.PerformQuack();
                }
                Console.WriteLine(string.Empty);
            }while(!exitApplication);
        }
コード例 #15
0
        static void Main(string[] args)
        {
            var mallardDuck = new MallardDuck();

            mallardDuck.QuackBehavior = new QuackAsNormal();
            mallardDuck.FlyBehavior   = new FlyWithWings();
            Console.WriteLine($"Mallard duck {new string('-', 50)}");
            mallardDuck.Swim();
            mallardDuck.PerformQuack();
            mallardDuck.PerformFly();

            var redheadDuck = new RedheadDuck();

            redheadDuck.QuackBehavior = new QuackAsNormal();
            redheadDuck.FlyBehavior   = new FlyWithWings();
            Console.WriteLine($"Redhead duck {new string('-', 50)}");
            redheadDuck.Swim();
            redheadDuck.PerformQuack();
            redheadDuck.PerformFly();

            var rubberDuck = new RubberDuck();

            rubberDuck.QuackBehavior = new Sqeak();
            rubberDuck.FlyBehavior   = new FlyNoWay();
            Console.WriteLine($"Rubber duck {new string('-', 50)}");
            rubberDuck.Swim();
            rubberDuck.PerformQuack();
            rubberDuck.PerformFly();

            var decoyDuck = new DecoyDuck();

            decoyDuck.QuackBehavior = new Mute();
            decoyDuck.FlyBehavior   = new FlyNoWay();
            Console.WriteLine($"Decoy duck {new string('-', 50)}");
            decoyDuck.Swim();
            decoyDuck.PerformQuack();
            decoyDuck.PerformFly();
        }
コード例 #16
0
        static void Main(string[] args)
        {
            MallardDuck mallardDuck = new MallardDuck();

            PlayWithDuck(mallardDuck);

            RedheadDuck redheadDuck = new RedheadDuck();

            PlayWithDuck(redheadDuck);

            RubberDuck rubberDuck = new RubberDuck();

            PlayWithDuck(rubberDuck);

            DecoyDuck decoyDuck = new DecoyDuck();

            PlayWithDuck(decoyDuck);

            ModelDuck modelDuck = new ModelDuck();

            PlayWithDuck(modelDuck);
            modelDuck.SetFly(FlyBehavior.FlyWithWings());
            PlayWithDuck(modelDuck);
        }
コード例 #17
0
ファイル: Program.cs プロジェクト: Zerodisk/TestOOP
        static void Main(string[] args)
        {
            TestVirtual testVirtual = new TestVirtual();

            Console.WriteLine(testVirtual.resultA);         //using method from overrride
            Console.WriteLine(testVirtual.resultB);         //using method from base class

            Console.WriteLine(testVirtual.add(1, 2));       //using method from overrride
            Console.WriteLine(testVirtual.substract(9, 1)); //using method from base class
            Console.WriteLine();
            //======================================================================================

            SealMethod sealMethod = new SealMethod();

            Console.WriteLine(sealMethod.add(1, 1));
            Console.WriteLine(sealMethod.substract(2, 2));
            Console.WriteLine(sealMethod.multipy(2, 2));
            Console.WriteLine();
            //======================================================================================

            ProtectBase   protectBase   = new ProtectBase();
            TestProtected testProtected = new TestProtected();

            // below will have complier error as "add" method can only be used inside TestProtected
            //Console.WriteLine(TestProtected.add(4, 5));
            Console.WriteLine();
            //======================================================================================

            // below will have compier error - abstract can't be instantiate
            //AbstractBase ab = new AbstractBase();
            TestAbstract testAb = new TestAbstract();

            Console.WriteLine(testAb.add(3, 8));
            Console.WriteLine();
            //======================================================================================

            Console.WriteLine("---- test order system ----");
            Order order = new Order {
                Id = 1, FirstName = "Tan", Email = "*****@*****.**", Price = 10.50M
            };
            OrderingFactory factory = new OrderingFactory();
            IOrderProcess   orderA  = factory.GetOrderSupplier("A");

            orderA.MakeOrder(order);

            Console.WriteLine("");

            IOrderProcess orderB = factory.GetOrderSupplier("B");

            orderB.MakeOrder(order);

            Console.WriteLine("");
            Console.WriteLine("++++++++++++++++++++++++++++++++++++++++++++++++++++");
            Console.WriteLine("");
            Console.WriteLine(Multi10000(1, 1));
            Console.WriteLine();
            //======================================================================================
            IStore    store    = new Document();
            ICompress compress = new Document();

            store.Read();
            store.Write();
            compress.Compress();
            compress.Decompress();

            using (SimpleClass simple = new SimpleClass())
            {
                Console.WriteLine(simple.returnA());
            }
            Console.WriteLine();
            //======================================================================================


            Duck d1 = new DecoyDuck();

            d1.Display();
            d1.PerformFly();
            d1.PerformQuack();
            Duck d2 = new RubberDuck();

            d2.Display();
            d2.PerformFly();
            d2.PerformQuack();
            Console.WriteLine();
            //======================================================================================

            /*
             * WeatherData weatherData = new WeatherData();
             *
             * CurrentConditionsDisplay currDisplay = new CurrentConditionsDisplay(weatherData);
             * ForecastDisplay foreDisplay = new ForecastDisplay(weatherData);
             *
             * weatherData.setMeasurements(80, 65, 30.4f);
             */

            Console.WriteLine();
            //======================================================================================

            WeatherTracker provider = new WeatherTracker();

            CurrentConditionsDisplay currDisplay = new CurrentConditionsDisplay(provider);
            ForecastDisplay          foreDisplay = new ForecastDisplay(provider);

            provider.UpdateWeather(new WeatherData(80, 65, 30.4f));

            Console.WriteLine();
            //======================================================================================
            BeverageBase beverage = new Decaf();

            Console.WriteLine(beverage.Description
                              + " $" + beverage.cost());

            BeverageBase beverage2 = new DarkRoast();

            beverage2 = new Milk(beverage2);
            beverage2 = new Mocha(beverage2);
            Console.WriteLine(beverage2.Description
                              + " $" + beverage2.cost());


            Console.WriteLine();
            //======================================================================================
            Console.WriteLine(Singleton.Instant.getTest());
            Console.WriteLine(Singleton.Instant.getTest());
            Console.WriteLine(Singleton.Instant.getTest());


            Console.WriteLine();
            //======================================================================================
            Booking booking = new Booking {
                BookingId = 1, SupplierCode = "GTA", FirstName = "Tan", LastName = "Tang", TotalAmount = (decimal)299.99
            };
            ProcessBooking bookingProcess = new ProcessBooking(booking);

            bookingProcess.Initial();
            Console.WriteLine("  Booking State = {0}, Status = {1}", booking.State.ToString(), booking.Status);

            bookingProcess.PreAuthorisation();
            Console.WriteLine("  Booking State = {0}, Status = {1}", booking.State.ToString(), booking.Status);

            bookingProcess.MakeBooking();
            Console.WriteLine("  Booking State = {0}, Status = {1}", booking.State.ToString(), booking.Status);

            bookingProcess.MakePayment();
            Console.WriteLine("  Booking State = {0}, Status = {1}", booking.State.ToString(), booking.Status);

            bookingProcess.FinaliseBooking();
            Console.WriteLine("  Booking State = {0}, Status = {1}", booking.State.ToString(), booking.Status);


            Console.Read();
        }
コード例 #18
0
ファイル: DecoyDuckTest.cs プロジェクト: SebastianGaud/Ducks
 public DecoyDuckTest()
 {
     dd = new DecoyDuck();
 }