es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

En la arquitectura limpia MVVM, ¿dónde se transforman los objetos en adaptadores?

Entonces, supongamos que tengo un adaptador con múltiples tipos de vista y lo que recibo de la API del servidor es simplemente una lista y tengo que transformar objetos en mi adaptador.

Ejemplo:
Tengo una lista de personas que tienen un tipo asociado, pensemos en 1 y 2, y quiero mostrar en mi RecyclerView un encabezado entre diferentes tipos.

Así que tengo un fragmento – vista modelo – caso de uso – repositorio (solicitud a la API)

Mi adaptador espera una lista de personas.
Pensemos que Person es una interfaz, y person1 y person2 la implementan.

Por último, recibo del servidor una lista con objetos PersonApi, que tienen un tipo como parámetro y tengo que convertirlo en mis objetos de adaptador.

¿Dónde debería hacer esta transformación?
¿Repositorio?
¿Caso de uso?
¿Vista modelo?

Mi suposición es que debería estar en el caso de uso.

Edit:
Se agregó un gráfico
descripción de la imagen aquí

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Basándonos en los principios de la arquitectura MVVM y Clean, la transformación de los datos del servidor debe hacerse en la capa de Caso de Uso.

    En este escenario, la capa de Caso de Uso es responsable de recibir los datos de la capa de Repositorio, procesarlos y devolverlos a la capa ViewModel. En este caso, el Caso de Uso sería responsable de transformar la lista de objetos PersonApi en una lista de objetos Person (person1 y person2) antes de pasarla al ViewModel, que a su vez la proporcionaría al adaptador para su visualización en RecyclerView.

    Al mantener la lógica de transformación en el Caso de Uso, nos aseguramos de que el ViewModel y el adaptador solo se ocupen de mostrar los datos recibidos del Caso de Uso, y no de las transformaciones que puedan ser necesarias. Esto permite una mejor separación de preocupaciones y una fácil mantenimiento del código.

    Aquí hay un diagrama que ilustra la relación entre las capas y dónde residiría la lógica de transformación:

    Diagrama de arquitectura MVVM-Clean

Comments are closed.