Android modelo de vista de los acontecimientos Modelo

Tyler Hietanen:

Estoy trabajando en la construcción de una nueva aplicación de Android utilizando la arquitectura de componentes de Google (modelo de vista, LiveData) usando una arquitectura de MVVM.

Estoy bastante seguro de que tengo la mayor parte del flujo ya hacia abajo. Entiendo cómo el LiveData View utiliza para observar el modelo de vista de los cambios, y cómo el modelo de vista de manera similar se puede observar el modelo (en mi caso, un repositorio Singleton) para los cambios.

Como estoy tratando de mantener la mayor parte de mi lógica de negocio en la capa del modelo, me gustaría que la vista de los acontecimientos 'informe' a la capa del Modelo donde mi lógica de negocio puede decidir si / cómo manejar los eventos. Actualmente, mi lógica de negocio puede actualizar los valores en el repositorio que se propagan los valores de los cambios a la vista, pero esto es sólo unidireccional.

¿Cómo puedo notificar al Modelo de Ver eventos?

jeprubio:

La vista no puede informar directamente al modelo. Esto va en contra de la arquitectura limpia y el MVVM.

El modelo de vista actúa como enlace entre la vista y el modelo. El modelo de vista podría tomar la entrada de la vista y colocarlo en el modelo, o podría interactuar con un servicio para recuperar el modelo, luego traducir las propiedades y la vista será notificado de los datos modificados a través de la unión o de observadores.

Si utiliza Kotlin (y Gradle 2.0 o superior) ahora se puede utilizar fijaciones de escucha para el manejo de eventos y esto le permiten ejecutar directamente los métodos del modelo de vista cuando los eventos se desencadenan a través de expresiones lambda. Su entonces el modelo de vista que debe ser el que lleva a cabo el trabajo en el modelo. Cuando se actualiza el modelo del modelo de vista se notificará por un observador y la vista también refleja los cambios con la unión.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=385854&siteId=1
Recomendado
Clasificación