module strategy.flybehavior; import std.stdio : writeln; abstract interface FlyBehavior { void fly(); } class FlyWithWings : FlyBehavior { override void fly() { writeln("I'm flying!"); } } class FlyNoWay : FlyBehavior { override void fly() { writeln("I can't fly"); } } class FlyRocketPowered : FlyBehavior { override void fly() { writeln("I'm flying with a rocket!"); } }