有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如果我将实体转换为DTO,那么转换代码应该存在于何处?

如果我正在将一个实体转换为一个DTO,那么这种转换方法应该存在于何处

  1. 在实用课上
  2. 在同一实体中
  3. 在DTO中

我通常把它们放在实用程序类中,但我想为什么不把它们移到实体或DTO中

Like对象(这里是DTO或实体)应该知道可以对其执行什么操作以及如何操作(这里是转换)


共 (1) 个答案

  1. # 1 楼答案

    这是一张速写。它可能更简单/复杂,但我发现它对大多数情况都有效

    框架层(远程和缓存)映射器实现数据层接口并利用泛型。它们依赖于域和数据层,而不依赖于框架层本身

    // .domain
    class Doggy
    
    // .data
    interface Mapper<DomainModel, FrameworkModel> {
      fun toDomainModel(model: FrameworkModel): DomainModel
      fun toFrameworkModel(model: DomainModel): FrameworkModel
    }
    
    // .remote
    class DoggyDto
    
    class DoggyDtoMapper: Mapper<Doggy, DoggyDto> {
      override fun toDomainModel(model: DoggyDto): Doggy
      override fun toFrameworkModel(model: Doggy): DoggyDto
    }
    
    // .cache
    class DoggyEntity
    
    class DoggyEntityMapper: Mapper<Doggy, DoggyEntity> {
      override fun toDomainModel(model: DoggyEntity): Doggy
      override fun toFrameworkModel(model: Doggy): DoggyEntity
    }