// Optional parameter usage public Duck(IQuackStrategy quackStrategy = null) { // Duck depends on IQuackSelecctor which is a factory // Determines which (Strategy) animal to inject // Note how quack selection decoupled from Duck class // Change quackStrategy types without modifying Duck. IQuackSelector quackSelector = new QuackSelector(); // If parameter not passed, set default quackStrategy to Duck // Note usage of null-coalescing operator QuackSound = quackStrategy ?? quackSelector.SetAnimal(QuackBehaviorEnum.Duck); }
public IQuackStrategy SetAnimal(QuackBehaviorEnum quackBehaviorEnum) { switch (quackBehaviorEnum) { case QuackBehaviorEnum.Bird: QuackStrategySound = new BirdQuackStrategy(); break; case QuackBehaviorEnum.Duck: QuackStrategySound = new DuckQuackStrategy(); break; case QuackBehaviorEnum.Cat: QuackStrategySound = new CatQuackStrategy(); break; case QuackBehaviorEnum.Dog: QuackStrategySound = new DogQuackStrategy(); break; case QuackBehaviorEnum.Lion: QuackStrategySound = new LionQuackStrategy(); break; case QuackBehaviorEnum.Mouse: QuackStrategySound = new MouseQuackStrategy(); break; // Add new quackStrategy //case QuackBehaviorEnum.Sheep: // QuackStrategySound = new SheepQuackStrategy(); // break; default: QuackStrategySound = new DuckQuackStrategy(); break; } return(QuackStrategySound); }
public SmallDuck(IFlyStrategy flyStrategy, IQuackStrategy quackStrategy) : base(flyStrategy, quackStrategy) { }
public void ChangeQuackStrategy(IQuackStrategy quackStrategy) { _quackStrategy = quackStrategy; }
protected Duck(IQuackStrategy quackStrategy, IEatStrategy eatStrategy) { _quackStrategy = quackStrategy; _eatStrategy = eatStrategy; }
public void SetQuackStrategy(IQuackStrategy quackStrategy) { _quackStrategy = quackStrategy; }
public Duck(IFlyStrategy flyStrategy, IQuackStrategy quackStrategy) { _flyStrategy = flyStrategy; _quackStrategy = quackStrategy; }
public ModelDuck(IFlyStrategy flyStrategy, IQuackStrategy quackStrategy) { this.flyStrategy = flyStrategy; this.quackStrategy = quackStrategy; }
public WildDuck(IFlyStrategy flyStrategy, IQuackStrategy quackStrategy) : base(flyStrategy, quackStrategy) { }
public Duck() { this.flyStrategy = new WingFlyStrategy(); this.quackStrategy = new NormalQuackStrategy(); }
public Duck(IFlyStrategy flyStrategy, IQuackStrategy quackStrategy) { this._flyStrategy = flyStrategy; this._quackStrategy = quackStrategy; }