@marmuff

Kotlin, generics и мапперы: стоит ли так делать?

Всем доброго времени суток.
По ходу написания небольшой SDK для API заказчика в Android Library Module мне стало лень описывать 100500 мапперов data-классов из data-слоя в domain-слой и посетила идея заюзать дженерики - а именно создать некую следующую простую конструкцию:

object SDKMapper {

    @Suppress("UNCHECKED_CAST")
    fun <T, F> map(data: F, to: Class<T>): T = to.getDeclaredConstructor(to).newInstance(data)

}


И в каждом data-классе при необходимости реализовывать метод конструкторы в виде:

constructor(data: MyResponseDTO) {
    // some code here with values set to fields
}


И в будущем вызывать а-ля:

fun getResponse(): MyResponse = SDKMapper.map(repository.getResponse(), MyResponse::class.java)


Хотелось услышать мнение более опытных разработчиков - стоит ли так делать, плохая или хорошая это практика?
Ибо не всегда то, что экономит время, не ухудшает качество кода.

UPD: Обновил SDKMapper до inline-реализации маппинга и перешел на конструкторы
  • Вопрос задан
  • 229 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы