Files
HeadFirstDesignPatterns/Ch1Duck/Duck.cs

19 lines
463 B
C#

namespace Ch1Duck;
public abstract class Duck(IFlyBehaviour flyBehaviour, IQuackBehaviour quackBehaviour) {
public abstract void Display();
public void PerformFly() {
flyBehaviour.Fly();
}
public void PerformQuack() {
quackBehaviour.Quack();
}
}
public class MallardDuck() : Duck(new FlyWithWings(), new NormalQuack()) {
public override void Display() {
Console.WriteLine("I'm a real Mallard duck");
}
}