static void Main(string[] args)
        {
            Duck mallatd = new MallardDuck();

            mallatd.performQuack();
            mallatd.performFly();

            Duck model = new MallardDuck();

            model.performFly();
            //Динамическое изменение объекта
            model.setFlyBehavior(new FlyRocketPowered());
            model.performFly();
        }
        static void Main(string[] args)
        {
            Duck mallard = new MallardDuck(); // Constructs new MallardDuck object

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

            Duck model = new ModelDuck();                 // Constructs new ModelDuck object

            model.performFly();                           // initially calls default Fly() method defined in ModelDuck subclass to set behavior
            model.setFlyBehavior(new FlyRocketPowered()); // Overrides default Fly() behavior
            model.performFly();
        }
Пример #3
0
        static void Main(string[] args)
        {
            Duck mallard = new MallardDuck();

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

            ModelDuck modelDuck = new ModelDuck();

            modelDuck.performFly();
            modelDuck.setFlyBehavior(new FlyRocketPowered());
            modelDuck.performFly();
            Console.ReadKey();
        }
Пример #4
0
        static void Main(string[] args)
        {
            Duck mallard = new MallardDuck();

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

            // No fly, mute
            Duck model = new ModelDuck(new FlyNoWay(), new MuteQuack());

            model.performQuack();
            model.performFly();

            // Change at runtime to quack and fly rocket powered
            model.setQuackBehavior(new Quack());
            model.setFlyBehavior(new FlyRocketPowered());
            model.performQuack();
            model.performFly();
        }