Hablando de modo MVP, MVC, MVVM

He estado usando el modo MVP desde que aprendí Android, recuerdo que los mayores y las hermanas dijeron que el modo MVP es conveniente para la gestión y las pruebas unitarias. Lo he estado usando así todo el tiempo, y lo saqué para mirarlo dos veces, pero no tenía una impresión profunda en él.

Recientemente me preguntaron cuáles son las ventajas y desventajas del modelo MVP y cuál es la diferencia con MVC y MVVM.

Aquí hay un breve registro.

patrón MVC

En el modo MVC, la capa M se refiere al modelo (modelo), la capa V se refiere a la vista (vista) y la capa C se refiere al controlador (controlador).

Capa M: escriba la clase de entidad JavaBean y guarde los datos de muestra

Capa V: mostrar datos, recibir información del usuario, proporcionar interfaz e interacción con el usuario

Capa C: actualizar la interfaz de usuario y la instancia de datos

La actividad en MVC pertenece a la capa V, pero al mismo tiempo contiene algunas cosas relacionadas con el controlador, por lo que al escribir el mismo contenido, será necesario escribirlo muchas veces, lo que hace que el código esté inflado y altamente acoplado, lo cual es no propicio para el desarrollo y mantenimiento. Por ejemplo, la capa de vista acepta la entrada del usuario y luego modifica la instancia del modelo correspondiente a través del controlador; al mismo tiempo, cuando los datos de la instancia del modelo cambian, la interfaz de la interfaz de usuario debe modificarse y la interfaz se puede actualizar a través de el controlador. Esta operación es posible, pero no necesaria.

Ventajas: separación de vista y datos, más conveniente para el desarrollo de software a gran escala para la división de módulos, mejora la velocidad y la calidad de la codificación

modo JMV

En el modo MVP, la capa M se refiere al Modelo (modelo), la capa V se refiere a la Vista (vista) y la capa P se refiere al Presentador (presentador).

Capa M: proporciona el procesamiento y la implementación de datos y lógica comercial específica que desea mostrar en la capa Ver

Capa V: mostrar datos, recibir información del usuario, proporcionar interfaz e interacción con el usuario

Capa P: defina directamente el método de procesamiento Ver, transfiera el procesamiento de la capa M a la capa V y el procesamiento de respuesta de la capa V a la capa M

MVP abstrae la lógica de la interfaz de usuario en la actividad en una interfaz de vista, abstrae la lógica comercial en una interfaz de presentador y la clase de modelo sigue siendo el modelo original.

Una de las razones más razonables para separar la capa M de la capa V es que las operaciones de la interfaz de usuario en Android son asincrónicas y deben operarse en el subproceso principal.

La interacción entre la capa P y las capas V y M utiliza operaciones de definición de interfaz, que pueden lograr aún más el propósito del acoplamiento débil y hacer que las pruebas unitarias sean más convenientes.

En comparación con MVC, las ventajas de MVP son:

1. La actividad solo maneja las tareas del ciclo de vida y el código se vuelve más conciso

2. Presenter se abstrae en una interfaz, que puede tener múltiples implementaciones específicas, por lo que es conveniente para las pruebas unitarias.

3. Coloque la lógica empresarial en el presentador para evitar que el subproceso de fondo haga referencia a la actividad, lo que hace que el sistema no recicle los recursos de la actividad, lo que provoca pérdidas de memoria y OOM.

4. Separación de la lógica de vista y la lógica de negocios, reduciendo el acoplamiento

patrón MVVM

En el modo MVVM, la capa M se refiere al modelo (capa de datos), la capa V se refiere a la vista (capa de vista) y la capa VM se refiere al modelo de vista (capa de asociación)

Capa M: principalmente responsable de las operaciones de datos de red, operaciones de archivos y operaciones de bases de datos locales

Capa V: principalmente responsable de la carga del diseño y la interacción de la interfaz de usuario

Capa de máquina virtual: responsable de actualizar automáticamente la vista enlazada cuando los datos cambian y actualizar los datos enlazados a través de operaciones de vista

MVVM no es muy diferente de MVP.También reduce el acoplamiento y se centra en la creación de componentes, principalmente uniendo V y M.

Ventajas: la vista y el modelo están vinculados bidireccionalmente, por lo que los desarrolladores no necesitan concentrarse en actualizar la vista, sino solo en implementar la lógica comercial. Vincular el modelo simplifica el control lógico del modelo

defecto:

Haga que el seguimiento de excepciones de página sea complicado, ya que puede ser un error causado por View o puede ser causado por Model;

El enlace de datos bidireccional no es propicio para la reutilización del código. La Vista está vinculada a un Modelo, y los Modelos de diferentes módulos son diferentes, por lo que la Vista no se puede reutilizar;

El modelo se mantiene durante mucho tiempo y, si no se libera la memoria, costará más memoria;

La construcción de MVVM se puede consultar aquí: Construcción del marco MVVM de Android (1) ViewModel + LiveData + DataBinding - Tencent Cloud Developer Community - Tencent Cloud

Guess you like

Origin blog.csdn.net/weixin_56691212/article/details/126672235