【发布时间】:2019-04-29 17:07:56
【问题描述】:
在我的干净架构 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
)
域层 - 纯 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?
我正在努力寻找实用的答案,人们是如何解决这类问题的,而不是最终编写大量的数据类和映射器?
【问题讨论】:
标签: android kotlin architecture clean-architecture