Beispiel #1
0
        public static void Run()
        {
            Duck mallardDuck = new MallardDuck();

            mallardDuck.PerformQuack();
            mallardDuck.PerformFly();
            mallardDuck.SetFlyBehavior(new FlyRocketPowered());
            mallardDuck.PerformFly();
        }
Beispiel #2
0
        private static void Main()
        {
            // Паттерн Стратегия!

            Duck mallard = new MallardDuck();

            // Вызов метода performQuack(), унаследованного классом MallardDuck;
            // метод делегирует выполнение операции по ссылке на QuackBehavior
            // (то есть вызывает quack() через унаследованную переменную quackBehavior)
            mallard.PerformQuack();
            // Затем то же самое происходит с методом performFly(), также унаследованным классом MallardDuck
            mallard.PerformFly();

            Duck model = new ModelDuck();

            // Первый вызов performFly() передаётся реализации, заданной в конструкторе...
            // ...ModelDuck - то есть экземпляру FlyNoWay
            model.PerformFly();
            // Утка-приманка вдруг взлетает на рекативном двигателе!
            model.FlyBehavior = new FlyRocketPowered();
            // Способность утки-приманки к полёту переключается динамически!
            // Если бы реализация находилась в иерархии Duck, такое было бы невозможно
            model.PerformFly();

            Console.Read();
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            Duck mallard = new MallardDuck();
            mallard.PerformQuack();
            mallard.PerformFly();

            Duck modelDuck = new ModelDuck();
            modelDuck.PerformFly();
            modelDuck.FlyBehavior = new FlyRocketPowered();
            modelDuck.PerformFly();
        }
        static void Main(string[] args)
        {
            Duck mallardDuck = new MallardDuck();

            mallardDuck.PerformQuack();
            mallardDuck.PerformFly();

            Duck model = new ModelDuck();

            model.PerformFly();
            model.setFlyBehavior(new FlyRocketPowered());
            model.PerformFly();
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            Duck duck = new MallardDuck(new FlyWithWings(), new NormalQuack());

            Console.WriteLine("Mallard:");
            duck.Display();
            duck.PerformFly();
            duck.PerformQuack();

            Console.WriteLine("\nDuck Call:");
            DuckCall duckCall = new DuckCall();

            duckCall.PerformQuack();
        }
        static void Main()
        {
            Duck mallard = new MallardDuck();
            mallard.PerformQuack();
            mallard.PerformFly();

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

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
Beispiel #7
0
        static void Main(string[] args)
        {
            Duck mallardDuck = new MallardDuck();

            mallardDuck.PerformFly();
            mallardDuck.PerformQuack();

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

            Duck modelDuck = new ModelDuck();

            modelDuck.PerformFly();
            modelDuck.SetFlyBehavior(new FlyWithWings());
            modelDuck.PerformFly();
        }
Beispiel #8
0
        static void Main()
        {
            Duck duck = new MallardDuck();

            duck.Display();
            duck.PerformFly();
            duck.PerformSwim();

            duck = new RubberDuck();
            duck.Display();
            duck.PerformFly();
            duck.PerformSwim();

            Console.ReadLine();
        }
Beispiel #9
0
        public static void Main()
        {
            Duck mallard      = new MallardDuck();
            Duck rubberDuckie = new RubberDuck();
            Duck decoy        = new DecoyDuck();
            Duck model        = new ModelDuck();

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

            model.PerformFly();
            model.SetFlyBehavior(new FlyRocketPowered());
            model.PerformFly();
        }
        static void Main(string[] args)
        {
            Duck duck = new MallardDuck();

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

            duck = new ModelDuck();
            duck.Display();
            duck.PerformFly();
            duck.PerformQuack();
            duck.SetFlyBehavior(new FlyWithRockets());
            duck.PerformFly();

            Console.ReadLine();
        }
Beispiel #11
0
        static void Main(string[] args)
        {
            Duck mallard = new MallardDuck();

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

            Console.WriteLine("");

            Duck model = new ModelDuck();

            model.Display();
            model.PerformFly();

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

            // Wait for user input
            Console.ReadKey();
        }
        public static void Main()
        {

            Duck duck1 = new MallardDuck();
            Duck duck2 = new ModelDuck();

            duck1.Display();
            duck1.Swim();
            duck1.PerformQuack();
            duck1.PerformFly();

            Console.WriteLine();

            duck2.Display();
            duck2.Swim();
            duck2.PerformQuack();
            duck2.PerformFly();
            duck2.FlyBehavior = new FlyRocketPowered();
            duck2.PerformFly();


            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            Console.WriteLine("*** Strategy ***\n");

            Console.WriteLine("=> Mallard Duck");
            Duck mallard = new MallardDuck();

            mallard.PerformQuack();
            mallard.PerformFly();
            Console.WriteLine();

            Console.WriteLine("=> Model Duck");
            Duck model = new ModelDuck();

            model.PerformFly();
            model.FlyBehavior = new FlyRockedPowered();
            model.PerformFly();
            Console.WriteLine();

#if (!vscode) // Add this for run from VS in order to console window will keep open
            Console.WriteLine("Press Enter for exit");
            Console.ReadLine();
#endif
        }