Manera fácil de mapear models de datos a models de dominio

Estoy siguiendo el patrón de Clean Architecture en el que tenemos las 3 capas ( Presentation , Domain , Data ).

Cada capa debe tener su propio model y estos models se deben convertir cuando se pasen a otra capa utilizando un asignador.

Quería saber si hay una manera fácil (¿una biblioteca?) De mapear un data model a un domain model sin crear un mapper , especialmente si mi data model tiene muchos campos (como 40-50).

Editar

Ya probé ModelMapper y DozerMapper, pero aparentemente no funcionan bien en Android ( problema ModelMapper y problema DozerMapper ).

Gracias por adelantado.

¡Está buscando un AutoMapper! Hay muchos de ellos y la mayoría se denominan aproximadamente AutoMapper.

Aquí hay uno para Java: http://modelmapper.org/

No estoy seguro acerca de Kotlin, ya que aún no lo he investigado, pero supongo que si una librería de JavaScript Automapper no es compatible, no pasará mucho time antes de que se cree una.

Pensamiento final para el debate:

Me gustaría aclarar que cada capa no debería tener su propio model a less que sea necesario . Creo en la Arquitectura Limpia, los models de tu dominio deberían ser el objective. Por ejemplo; Si necesita ajustar su model para que pueda persistir (por ejemplo, en una database SQL), entonces necesitaría un DTO. Por otro lado, si su model de dominio se puede serializar en JSON y persistir en una database NoSQL, entonces no hay necesidad de duplicar un model. Mantente seco!

  • El valor de configuration de Proto3 igual al pnetworkingeterminado no se reconoce en el time de ejecución
  • Cómo llamar a una function de postgres con una matriz de tipo compuesto
  • Kotlin: ¿funciones de extensión y types de plataforma?
  • Kotlin: ¿Cómo obtengo caracteres después de "@" en una cadena?
  • Kotlin: No se puede declarar un argumento de tipo mutableListOf en la definición de la class
  • Android Espresso: cómo ejecutar la configuration solo una vez para todas las testings
  • La 'anulación' del modificador no es aplicable a 'getter'
  • Cómo convertir una list a un map en Kotlin?
  • La variable 'ejecutable' debe ser inicializada
  • cant en variable de llamada en android studio
  • ¿Cómo puedo hacer que el parámetro param sea mutable en Kotlin?