在使用协同程序时,我们如何将领域模型映射到网络实体?

While using coroutines how do we map the domain model to a network entity?

根据 MVVM 架构,必须使用数据映射器 class,因为它将实体映射到可在表示层中使用的域。在使用协程时,我们是否明确需要创建一个 Mapper Class。 例如,这是 DataMapper class :

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)
    }
}

如果我们使用协程,是否需要遵循同样的模式?或者域到实体或实体到域的映射是否在后台自动发生?

我想是的, 它必须像这样完成但更短,协程中的映射函数只是执行你对每个列表项的映射,

因此无论如何都需要定义实际映射,

你知道,函数不知道如何处理每个开发人员元素,没有共同的相似之处,你在这里将每个元素字段映射到它对应的字段。