Skip to content

Instantly share code, notes, and snippets.

@balsikandar
Created May 4, 2021 19:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save balsikandar/7112bbe3e0e1b15e38016d24e728b2ad to your computer and use it in GitHub Desktop.
Save balsikandar/7112bbe3e0e1b15e38016d24e728b2ad to your computer and use it in GitHub Desktop.
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
}
@rohitob
Copy link

rohitob commented Aug 18, 2021

fun getNoOfSeats(vehicleType: VehicleTypes) = map.get(vehicleType)?.getNoOfSeats()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment