在存储库层中映射域对象和 DTO

问题描述

我正在尝试包含一个映射器来将 DTO 转换为域模型。这是示例存储库

class StudentRepository(service: StudentService,studentMapper: Mapper<StudentDTO,StudentModel>) {
    
   fun fetchRecords(student: StudentModel): List<StudentModel> {
       val result = service.getAllRecords(student.id)  //Q1
       
       return studentMapper.map(result)
   }
}

映射器看起来像这样。

class StudentMapper : Mapper<StudentDTO,StudentModel> {
   override fun map(dto: StudentDTO): StudentModel {
       return StudentModel().apply { //transform each field }   
   }
}

关于这个实现我有几个问题。

  1. 是否可以使用“Q1”中提到的模型对象?
  2. 此处将模型对象映射到 DTO 的最佳方法是什么?

解决方法

StudentModel 和 StudentDTO 有什么区别?