Created
May 4, 2021 19:19
-
-
Save balsikandar/7112bbe3e0e1b15e38016d24e728b2ad to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fun main() { | |
val carDealer = CarDealer() | |
println(carDealer.getSpeed(VehicleTypes.BUS)) | |
} | |
class CarDealer { | |
val map = HashMap<VehicleTypes, Vehicle>() | |
init { | |
map.put(VehicleTypes.CAR, Car()) | |
map.put(VehicleTypes.BUS, Bus()) | |
map.put(VehicleTypes.TRUCK, Truck()) | |
} | |
fun getSpeed(vehicleType: VehicleTypes) = map.get(vehicleType)?.getSpeed() | |
fun getNoOfSeats(vehicleType: VehicleTypes) = map.get(vehicleType)?.getSpeed() | |
} | |
class Car : Vehicle { | |
override fun getSpeed() = 100 | |
override fun getNoOfSeats() = 4 | |
} | |
class Bus : Vehicle { | |
override fun getSpeed() = 200 | |
override fun getNoOfSeats() = 40 | |
} | |
class Truck : Vehicle { | |
override fun getSpeed() = 150 | |
override fun getNoOfSeats() = 5 | |
} | |
interface Vehicle { | |
fun getSpeed(): Int | |
fun getNoOfSeats(): Int | |
} | |
enum class VehicleTypes { | |
CAR, BUS, TRUCK | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
fun getNoOfSeats(vehicleType: VehicleTypes) = map.get(vehicleType)?.getNoOfSeats()