В моей настройке приложения Android с чистой архитектурой у меня есть собственный модуль Gradle для каждого слоя (данные, домен, презентация).У меня также есть собственные модели / сущности для каждого слоя, которые конвертируются из одного слоя в другой с помощью картографов.Это приводит к ситуации, когда у меня много классов данных kotlin, представляющих в основном одно и то же, но на другом уровне.Мне это не кажется правильным.
Простой пример:
Уровень данных - модуль библиотеки Android
@JsonClass(generateAdapter = true)
data class BuildingEntity(
@Json(name = "u_id")
val id: String,
val name: String,
val latitude: Double,
val longitude: Double,
@Json(name = "current_tenants")
val tenants: List<TenantEntity>? = null
)
Уровень домена - Модуль Pure Kotlin
data class Building(
val id: String,
val name: String,
val location: CoordinatePoint,
val tenants: List<Tenant>? = null
Уровень представления Модуль приложения Android
data class BuildingModel(
val id: String,
val name: String,
val location: LatLng,
val tenants: List<TenantModel> = listOf()
)
BuildingEntity
извлекается из API внешней сети.
Это хорошо отделяет каждый модуль друг от друга, но в моем приложении у меня есть много разных сущностей с вложенными структурами.В итоге я написал много классов и картографов данных kotlin.
Как мне это упростить?Могу ли я удалить класс Building
и использовать BuildingEntity
на уровне данных и домена?Просто конвертировать BuildingEntity
в BuildingModel
на уровне представления?
Я пытаюсь найти практические ответы, как люди решают такого рода проблемы, не заканчивая тем, что пишут тонны классов данных и картографов?