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(); }
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(); }
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(); 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(); }