Android应用架构优化:领域模型分离、包结构组织与UI解耦
1. 领域模型与数据模型分离
1.1 问题分析
在我们的餐厅应用中,最初的 Restaurant 数据类是一个纯粹的 Kotlin 数据类,但随着功能的增加,为了从 Web API 获取数据,我们引入了 Retrofit 和 GSON 注解;为了缓存数据,又添加了 Room 注解。这导致 Restaurant 类作为领域模型类与数据层的库依赖耦合在一起,不符合 Clean Architecture 中领域模型应独立于数据获取和缓存库的原则。
1.2 解决方案
为了实现领域模型与数据传输对象(DTO)的分离,我们需要将 Restaurant 类拆分为三个类:
- RemoteRestaurant :用于从 Web API 接收数据,包含 GSON 序列化注解。
data class RemoteRestaurant(
@SerializedName("r_id")
val id: Int,
@SerializedName("r_title")
val title: String,
@SerializedName("r_description")
val description: String
)
- LocalRestaurant :用于本地数
超级会员免费看
订阅专栏 解锁全文
311

被折叠的 条评论
为什么被折叠?



