Beispiel #1
0
        static void Main()
        {
            Duck littleDuck = new RubberDuck();
            Duck woodenDuck = new WoodenDuck();
            Duck simleDuck  = new SimpleDuck();
            Duck fakeDuck   = new FakeDuck();

            Console.WriteLine("1st duck");
            littleDuck.PerformFly();
            littleDuck.PerformQuack();
            littleDuck.Swim();

            Console.WriteLine("\n");

            Console.WriteLine("2nd duck");
            woodenDuck.PerformFly();
            woodenDuck.PerformQuack();
            woodenDuck.Swim();

            Console.WriteLine("\n");

            Console.WriteLine("3rd duck");
            simleDuck.PerformFly();
            simleDuck.PerformQuack();
            simleDuck.Swim();

            Console.WriteLine("\n");

            Console.WriteLine("4th duck");
            fakeDuck.PerformFly();
            fakeDuck.PerformQuack();
            fakeDuck.Swim();

            Console.ReadKey();
        }
        public async Task <int> AddAsync(RubberDuck product)
        {
            context.RubberDucks.Add(product);
            var rowsAffected = await context.SaveChangesAsync();

            return(rowsAffected);
        }
Beispiel #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");

            Console.ReadKey();
        }
        public void StrategyTest()
        {
            {
                var content = new Context();
                content.AlgorithmInvoker();
                content.SetStrategy(new ConcreteStrategyA());
                content.AlgorithmInvoker();
                content.SetStrategy(new ConcreteStrategyB());
                content.AlgorithmInvoker();
            }
            {
                var operation = new InterestOperation();
                operation.SetStragety(new PersonalTaxStrategy());
                Console.WriteLine("个人支付的税为{0}", operation.GetTax(5000));

                operation.SetStragety(new EnterpriseTaxStrategy());
                Console.WriteLine("企业支付的税为{0}", operation.GetTax(50000));
            }
            {
                var duck = new RedDuck();
                duck.PerFormFly();
                duck.PerFormQuack();

                var rubberDuck = new RubberDuck();
                rubberDuck.PerFormFly();
                rubberDuck.PerFormQuack();
            }
            {
                var content = new 策略模式.抽题.GetExamContext(10);
                content.AddStrategy(new GetOneMonthExamStrategy());
                content.AddStrategy(new GetTwoMonthExamStrategy());
                content.GetExam();
            }
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            DuckRepository duckstorage = DuckRepository.Get();

            for (int i = 0; i < 4; i++)
            {
                Duck duck = new Duck();
                duckstorage.Add(duck.name);
            }

            for (int i = 0; i < 7; i++)
            {
                WoodenDuck woodenduck = new WoodenDuck();
                duckstorage.Add(woodenduck.name);
            }

            for (int i = 0; i < 10; i++)
            {
                RubberDuck rubberduck = new RubberDuck();
                duckstorage.Add(rubberduck.name);
            }

            Console.WriteLine("На складе имеется:");
            foreach (KeyValuePair <string, int> keyValue in duckstorage.Storage)
            {
                Console.WriteLine(keyValue.Key + ": " + keyValue.Value + " штук");
            }

            Console.ReadLine();
        }
Beispiel #6
0
        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();
        }
        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();
            }
        }
Beispiel #8
0
        static void Main(string[] args)
        {
            Duck duck = new MallardDuck();

            PrintMsg(duck);
            sb.AppendLine();


            duck = new RedHeadDuck();
            duck.SetFlyBehavior(Delegation.New <FlyBehavior>(typeof(NoVoice)));
            duck.SetQuackBehavior(new QuackBehavior(typeof(Squeak)));
            PrintMsg(duck);
            sb.AppendLine();

            duck = new RedHeadDuck();
            duck.SetQuackBehavior(new QuackBehavior(typeof(NoVoice)));
            PrintMsg(duck);
            sb.AppendLine();

            duck = new RubberDuck();
            duck.SetFlyBehavior(Delegation.New <FlyBehavior>(typeof(FlyNoWay)));           //new FlyBehavior(typeof(FlyNoWay))
            duck.SetQuackBehavior(new QuackBehavior(typeof(MuteQuack)));
            PrintMsg(duck);
            sb.Append(duck.Swim());
            sb.AppendLine();

            Console.WriteLine(sb.ToString());
            Console.ReadLine();
        }
Beispiel #9
0
        public void TestMethod1()
        {
            IFlyBehaviour flyBehaviour = new FlyBehaviour();

            MallardDuck mallardDuck = new MallardDuck(flyBehaviour);
            RedheadDuck redheadDuck = new RedheadDuck(flyBehaviour);

            IFlyBehaviour noFlyBehaviour = new NoFlyBehaviour();
            RubberDuck    rubberDuck     = new RubberDuck(noFlyBehaviour);


            mallardDuck.Display();
            mallardDuck.Fly();

            redheadDuck.Display();
            redheadDuck.Fly();

            rubberDuck.Display();
            rubberDuck.Fly();

            rubberDuck.ChangeFlyBehaviour(flyBehaviour);
            rubberDuck.Fly();

            redheadDuck.Swim();
            mallardDuck.Swim();
            rubberDuck.Swim();
        }
Beispiel #10
0
        static void Main(string[] args)
        {
            Console.WriteLine(" ** This is Duck Fly Learning Program from Head First Design Patterns \n Chap 1 - Strategy Pattern ** \n\n");

            Duck mallard = new MallardDuck();

            mallard.display();
            mallard.performQuack();
            mallard.performFly();

            Console.WriteLine();

            Duck redhead = new RedheadDuck();

            redhead.display();
            redhead.performQuack();
            redhead.performFly();

            Console.WriteLine();

            Duck rubber = new RubberDuck();

            rubber.display();
            rubber.performQuack();
            rubber.performFly();

            Console.WriteLine();
            Console.WriteLine("Adding Rocket Power to Rubber Duck");
            Console.WriteLine();

            // setting fly behavior for rubber ducky
            rubber.setFlyBehavior = new FlyRocketPowered();
            rubber.display();
            rubber.performFly();
        }
Beispiel #11
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();
        }
Beispiel #12
0
        public void FakeDucksCantLand()
        {
            RubberDuck rd = new RubberDuck();
            DecoyDuck  dd = new DecoyDuck();

            rd.PerformLand();
            dd.PerformLand();
        }
        public void RubberDuck_Should_Quack_Swim_Display()
        {
            var rubberDuck = new RubberDuck();

            Assert.Equal("squeak", rubberDuck.PerformQuack());
            Assert.Equal("swim", rubberDuck.Swim());
            Assert.Equal("looks like a rubberduck", rubberDuck.Display());
        }
        public void TestRubberDuck()

        {
            HeadFirstDesignPatterns.Strategy.Duck.Duck RubberDuck = new RubberDuck();

            Assert.AreEqual("Squeak", RubberDuck.PerformQuack());

            Assert.AreEqual("I can't fly.", RubberDuck.PerformFly());
        }
Beispiel #15
0
        public void CheckRubberDuck()
        {
            var wd = new RubberDuck();

            wd.Show();
            wd.Fly();
            wd.Quack();
            wd.Swim();
        }
Beispiel #16
0
        private void RunAdapterExample()
        {
            Duck    rubberDuck = new RubberDuck();
            ITurkey wildTurkey = new WildTurkey();

            TurkeyToDuckAdapter turkey = new TurkeyToDuckAdapter(wildTurkey);

            turkey.PerformFly();
            turkey.PerformQuack();
        }
Beispiel #17
0
        public void Compound_Adapter_Behavior()
        {
            DuckSimulator duckSim      = new DuckSimulator();
            IQuackable    duck1        = new RubberDuck();
            Goose         goose        = new Goose();
            IQuackable    gooseAdapter = new GooseAdapter(goose);

            duckSim.Simulate(duck1);
            duckSim.Simulate(gooseAdapter);
        }
Beispiel #18
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();
        }
Beispiel #19
0
        public void TestRubberDuckQuack()
        {
            Duck   duck = new RubberDuck();
            string text = "Squee, squee!\r\n";

            using (var consoleOutput = new ConsoleOutput())
            {
                duck.Quack();
                Assert.AreEqual(text, consoleOutput.GetOutput());
            }
            Assert.AreEqual(currentConsoleOut, Console.Out);
        }
Beispiel #20
0
        public void RubberDuck_ShouldFlyRocketPowered_WhenChangeFlyRocketPowered()
        {
            //Arrange
            Duck rubber = new RubberDuck();

            //Act
            rubber.FlyBehavior = new FlyRocketPowered();
            var fly = rubber.PerformFly();

            //Assert
            fly.Should().Be("I'm flying with a rocket!");
        }
Beispiel #21
0
        public void TestRubberDuckFly()
        {
            Duck   duck = new RubberDuck();
            string text = "Fly with rocket!\r\n";

            using (var consoleOutput = new ConsoleOutput())
            {
                duck.Fly();
                Assert.AreEqual(text, consoleOutput.GetOutput());
            }
            Assert.AreEqual(currentConsoleOut, Console.Out);
        }
        public void Run()
        {
            Console.WriteLine("Program to an interface, not an implementation");

            RubberDuck      rubberDuck      = new RubberDuck();
            IFlyBehaviour   flyWithRocket   = new FlyWithRocket();
            IQuackBehaviour quackWithSqueek = new QuackWithSqueek();

            rubberDuck.setFlyBehaivour(flyWithRocket);
            rubberDuck.setQuackBehaivour(quackWithSqueek);
            rubberDuck.performFly();
            rubberDuck.performQuack();
        }
Beispiel #23
0
        static void Main(string[] args)
        {
            RedheadDuck duckduck = new RedheadDuck();

            duckduck.PerformFly();
            duckduck.PerformQuack();
            Duck duck = new RubberDuck();

            duck.PerformFly();
            duck.PerformQuack();
            duck.QuackBehaviour = new QuackOne();
            duck.PerformQuack();
        }
Beispiel #24
0
        static void Main(string[] args)
        {
            // Strategy pattern
            IQuackable mallardDuck = new MallardDuck();
            IQuackable redheadDuck = new RedheadDuck();
            IQuackable rubberDuck  = new RubberDuck();

            duckCall(mallardDuck);
            duckCall(redheadDuck);
            duckCall(rubberDuck);

            Console.ReadKey();
        }
Beispiel #25
0
        public void RubberDuck_ShouldCantFlyAndSqueakAndDisplay()
        {
            //Arrange
            Duck rubber = new RubberDuck();

            //Act
            var fly     = rubber.PerformFly();
            var quack   = rubber.PerformQuack();
            var display = rubber.Display();

            //Assert
            fly.Should().Be("I can't fly.");
            quack.Should().Be("Squeak");
            display.Should().Be("I'm a Rubber duck");
        }
Beispiel #26
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();
        }
Beispiel #27
0
    static void Main()
    {
        Duck RubberDuck = new RubberDuck();

        RubberDuck.PerformFly();
        RubberDuck.PerformQuack();
        RubberDuck.Display();
        Duck FredTheEagle = new Eagle();

        FredTheEagle.PerformFly();
        FredTheEagle.PerformQuack();
        FredTheEagle.Display();

        Console.ReadKey();
    }
        public void ShouldGetRubberDuckCanSwimButNotFlyAndSqueakQuack()
        {
            var quack = new RubberDuck();

            quack.SetFlyBehaviour(new FlyNoWay());

            quack.SetQuackBehaviour(new Squeak());

            quack.Display();

            quack.PerformQuack();

            quack.Swim();

            quack.Display();
        }
Beispiel #29
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();
        }
Beispiel #30
0
        static void Main(string[] args)
        {
            Bird christianBird = new RubberDuck();

            christianBird.Display();
            christianBird.SetFlyBehavior(new YesFly());
            christianBird.PerformFly();
            christianBird.PerformQuack();
            christianBird.Swim();

            Bird mortyBird = new Swallow();

            mortyBird.Display();
            mortyBird.PerformFly();
            mortyBird.PerformQuack();
            mortyBird.Swim();
        }