public MallardDuck() { flyBehaviour = new FlyWithWingsBehaviour(); quackBehaviour = new QuackBehaviour(); }
public void setQuackBehaviour(QuackBehaviour qb) { quackBehaviour = qb; }
public void PerformQuack() => QuackBehaviour?.Quack();
//public abstract void setFlyBehaviour(FlyBehaviour fly); //facem atribuirea direct in constructor //{ _flyBehaviour = fly; } //facem abstracta sa obligam specificarea unei behaviour , schimbat, vezi mai sus public void setQuackBehaviour(QuackBehaviour quack) //pentru a putea schimba la runtime { _quackBehaviour = quack; }
public void PerformQuack() { QuackBehaviour.LaudQuack(); }
// 动态改变叫声 public void SetQuackMethod(QuackBehaviour qb) { quackBehaviour = qb; }
public RedheadDuck() { flyBehaviour = new FlyWithWingsBehaviour(); quackBehaviour = new QuackBehaviour(); }
public void SetQuackBehaviour(QuackBehaviour qc) { QuackBehaviour = qc; }
public void performQuack() { QuackBehaviour.quack(); }