¿Puedo cambiar una class por object en Kotlin?

El siguiente ejemplo de código A es de https://github.com/antoniolg/Kotlin-for-Android-Developers/blob/master/app/src/main/java/com/antonioleiva/weatherapp/data/db/ForecastDb.kt

En la aplicación, la class ForecastDb siempre usa parameters pnetworkingeterminados (ForecastDbHelper.instance y DbDataMapper ()).

Escribo el código B, creo que el código B es más simple, ¿cree que el código B es mejor que el código A?

Código A

class ForecastDb(private val forecastDbHelper: ForecastDbHelper = ForecastDbHelper.instance, private val dataMapper: DbDataMapper = DbDataMapper()) : ForecastDataSource { override fun requestForecastByZipCode(zipCode: Long, date: Long) = forecastDbHelper.use { val dailyRequest = "${DayForecastTable.CITY_ID} = ? AND ${DayForecastTable.DATE} >= ?" val dailyForecast = select(DayForecastTable.NAME) .whereSimple(dailyRequest, zipCode.toString(), date.toString()) .parseList { DayForecast(HashMap(it)) } val city = select(CityForecastTable.NAME) .whereSimple("${CityForecastTable.ID} = ?", zipCode.toString()) .parseOpt { CityForecast(HashMap(it), dailyForecast) } city?.let { dataMapper.convertToDomain(it) } } override fun requestDayForecast(id: Long) = forecastDbHelper.use { val forecast = select(DayForecastTable.NAME).byId(id). parseOpt { DayForecast(HashMap(it)) } forecast?.let { dataMapper.convertDayToDomain(it) } } fun saveForecast(forecast: ForecastList) = forecastDbHelper.use { clear(CityForecastTable.NAME) clear(DayForecastTable.NAME) with(dataMapper.convertFromDomain(forecast)) { insert(CityForecastTable.NAME, *map.toVarargArray()) dailyForecast.forEach { insert(DayForecastTable.NAME, *it.map.toVarargArray()) } } } } 

Código B

 object ForecastDb : ForecastDataSource { private val forecastDbHelper: ForecastDbHelper = ForecastDbHelper.instance private val dataMapper: DbDataMapper = DbDataMapper() override fun requestForecastByZipCode(zipCode: Long, date: Long) = forecastDbHelper.use { val dailyRequest = "${DayForecastTable.CITY_ID} = ? AND ${DayForecastTable.DATE} >= ?" val dailyForecast = select(DayForecastTable.NAME) .whereSimple(dailyRequest, zipCode.toString(), date.toString()) .parseList { DayForecast(HashMap(it)) } val city = select(CityForecastTable.NAME) .whereSimple("${CityForecastTable.ID} = ?", zipCode.toString()) .parseOpt { CityForecast(HashMap(it), dailyForecast) } city?.let { dataMapper.convertToDomain(it) } } override fun requestDayForecast(id: Long) = forecastDbHelper.use { val forecast = select(DayForecastTable.NAME).byId(id). parseOpt { DayForecast(HashMap(it)) } forecast?.let { dataMapper.convertDayToDomain(it) } } fun saveForecast(forecast: ForecastList) = forecastDbHelper.use { clear(CityForecastTable.NAME) clear(DayForecastTable.NAME) with(dataMapper.convertFromDomain(forecast)) { insert(CityForecastTable.NAME, *map.toVarargArray()) dailyForecast.forEach { insert(DayForecastTable.NAME, *it.map.toVarargArray()) } } } }