예제 #1
0
        public void DuckCallSaysQuack()
        {
            var duck     = new DuckCall();
            var greeting = duck.SayHello();

            Assert.That(greeting, Is.EqualTo("quack"));
        }
예제 #2
0
        public void Compound_Strategy_Behavior()
        {
            DuckSimulator duckSim = new DuckSimulator();
            IQuackable    duck1   = new MallardDuck();
            IQuackable    duck2   = new DuckCall();

            duckSim.Simulate(duck1);
            duckSim.Simulate(duck2);
        }
예제 #3
0
        public static void Main(string[] args)
        {
            Duck mallard = new MallardDuck();

            mallard.PerformQuack();
            mallard.PerformFly();

            Duck model = new ModelDuck();

            model.PerformFly();
            model.FlyBehavior = new FlyRocketPowered();
            model.PerformFly();

            IQuackBehavior duckCall = new DuckCall();

            duckCall.quack();
        }
예제 #4
0
        static void Main(string[] args)
        {
            Duck mallard = new MallardDuck();

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

            Duck model = new ModelDuck();

            model.performFly();
            // Dynamically update a class at runtime
            model.FlyBehavior = new FlyRocketPowered();
            model.performFly();

            DuckCall duckCall = new DuckCall();

            duckCall.performQuack();
        }
예제 #5
0
        private static void RunEquipment()
        {
            var silence = new SilentQuack();
            var tools   = new DuckCall[]
            {
                new SteelDuckCall(),
                new WoodenDuckCall()
            };

            foreach (var tool in tools)
            {
                Console.Write($"{tool.Description()} Says: ");
                tool.MakeSound();
                tool.ChangeQuackBehaviour(silence);
                Console.WriteLine(string.Empty);
                Console.Write($"{tool.Description()} Now Says: ");
                tool.MakeSound();
                Console.WriteLine(string.Empty);
            }
        }
예제 #6
0
        static void Main(string[] args)
        {
            Duck mallard = new MallardDuck();

            mallard.Display();
            mallard.performQuack();
            mallard.performFly();


            Duck model = new ModelDuck();

            model.Display();
            model.performFly();
            model.SetFlyBehavior(new FlyRocketPowered());
            model.performFly();

            Console.WriteLine("The following is a duck call");
            DuckCall duckCall = new DuckCall(new RegularQuack());

            duckCall.Quack();

            Console.ReadLine();
        }
예제 #7
0
        private void CreateDuckCall()
        {
            Duck duckCall = new DuckCall();

            duckCall.Execute();
        }