如何解决在使用协程时,我们如何将域模型映射到网络实体?
根据 MVVM 架构,必须使用数据映射器类,因为它将实体映射到可在表示层中使用的域。在使用协程时,我们是否明确需要创建一个 Mapper 类。 例如,这是 DataMapper 类:
class PermissionDataMapper @Inject constructor() {
fun mapEntityToDomain(permissionEntity: PermissionEntity): PermissionDomain {
return PermissionDomain(
permissionName = permissionEntity.roleDesc,permissionId = permissionEntity.roleId
)
}
fun mapEntityListToDomainList(permissionEntityList: List<PermissionEntity?>): List<PermissionDomain> {
return permissionEntityList.map { permissionEntity ->
mapEntityToDomain(permissionEntity!!)
}
}}
在将实体列表映射到域列表的 DataRepositoryClass 中进一步使用:
override fun getSharePermissions(): Observable<List<PermissionDomain>> {
return userDataSourceFactory.retrieveRemoteDataSource().getSharePermissions().map {
return@map permissonsDataMapper.mapEntityListToDomainList(it)
}
}
如果我们使用协程,我们是否需要遵循同样的模式?还是域到实体或实体到域的映射在后台自动发生?
解决方法
我想是的, 它必须像这样完成但更短,协程中的 map 函数只是执行你到每个列表项的映射,
所以无论如何都需要定义实际的映射,
你知道,函数不知道如何处理每个开发者元素,没有共同点,你在这里将每个元素字段映射到其对应的字段。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。