In support to blog post https://codewithshabib.com/2017/02/05/introduction-to-strategy-pattern/
protocol RoadDrivable { | |
func driveOnRoad() | |
} | |
protocol WaterDrivable { | |
func driveOnWater() | |
} | |
protocol Flyable { | |
func flyOnAir() | |
} | |
class SmartVehicle { | |
func talk() { | |
print("Hi! I am the smart talking vehicle!") | |
} | |
} | |
class SmartCar: SmartVehicle, RoadDrivable { | |
func driveOnRoad() { | |
print("Vroom!") | |
} | |
} | |
class SmartBoat: SmartVehicle, WaterDrivable { | |
func driveOnWater() { | |
print("I can run over water, because I can! B-)") | |
} | |
} | |
class SmartPlane: SmartVehicle, Flyable { | |
func flyOnAir() { | |
print("Wohoo! I am flying high!") | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment