Explore la diferencia entre MVP y MVC

1.MVC

1.1 Concepto El
nombre completo de MVC es Model View Controller, que es una abreviatura de model-view-controller, un modelo de diseño de software, y organiza el código en un método separado de lógica empresarial, datos y visualización de la interfaz. , Reúna la lógica empresarial en un componente, mientras mejora y personaliza la interfaz y la interacción del usuario, no es necesario volver a escribir la lógica empresarial. MVC está desarrollado exclusivamente para mapear las funciones tradicionales de entrada, procesamiento y salida en una estructura de interfaz gráfica de usuario lógica.

Modelo: el modelo representa un objeto o JAVA POJO que accede a los datos. También puede tener lógica para actualizar el controlador cuando cambian los datos.
Vista: la vista representa la visualización de los datos contenidos en el modelo.
Controlador: el controlador actúa sobre el modelo y la vista. Controla el flujo de datos para modelar objetos y actualiza la vista cuando cambian los datos. Separa la vista del modelo.

Nota:
a. La
vista no usa el controlador para actualizar el modelo. El controlador es responsable de procesar las operaciones del usuario enviadas desde la vista y actualizar los datos a través de la interacción con el modelo.
b. El
controlador se puede integrar con la vista
c. El
controlador no contiene lógica de representación para la vista.

1.2 Contenido del marco:
Inserte la descripción de la imagen aquí
MVC se refiere a un cierto marco del modelo MVC, que separa obligatoriamente la entrada, el procesamiento y la salida de la aplicación. Las aplicaciones que utilizan MVC se dividen en tres componentes principales: modelo, vista y controlador. Cada uno maneja sus propias tareas. El MVC más típico es el modelo de JSP + servlet + javabean.
La vista
es la interfaz que el usuario ve e interactúa. Para las aplicaciones web antiguas, la vista es una interfaz compuesta de elementos HTML. En las aplicaciones web modernas, HTML todavía juega un papel importante en la vista, pero algunas tecnologías nuevas han surgido en un flujo interminable, como Adobe Flash y Algunos lenguajes de marcado como XHTML, XML / XSL, WML y servicios Web La
ventaja de MVC es que puede manejar muchas vistas diferentes para la aplicación. De hecho, no se produce ningún procesamiento real en la vista. Independientemente de si los datos se almacenan en línea o en una lista de empleados, como vista, es solo una forma de generar datos y permitir que los usuarios los manipulen.

El modelo
representa los datos empresariales y las reglas comerciales. Entre los tres componentes de MVC, el modelo tiene la mayoría de las tareas de procesamiento. Por ejemplo, puede utilizar objetos componentes como EJB y componentes ColdFusion para procesar la base de datos. Los datos devueltos por el modelo son neutrales, es decir, el modelo no tiene nada que ver con el formato de datos. Dicho modelo puede proporcionar datos para múltiples vistas. Varias vistas solo pueden reutilizar el código una vez, por lo que se reduce la duplicación de código.

El controlador
acepta la entrada del usuario y llama al modelo y vista para completar las necesidades del usuario, por lo que al hacer clic en el hipervínculo en la página web y enviar el formulario HTML, el controlador en sí no genera nada ni realiza ningún procesamiento. Simplemente recibe la solicitud y decide a qué componente del modelo llamar para procesar la solicitud, y luego decide qué vista usar para mostrar los datos devueltos.

Marcos comunes : Struts, Spring, .NET, NF

1.3 Ventajas
a. Acoplamiento. La
capa de vista y la capa de negocio están separadas, lo que permite cambiar el código de la capa de vista sin volver a compilar el modelo y el código del controlador. De manera similar, los cambios en el proceso comercial o las reglas comerciales de una aplicación solo necesitan cambiar la capa del modelo MVC Eso es. Debido a que el modelo está separado del controlador y la vista, es fácil cambiar la capa de datos y las reglas comerciales de la aplicación.
b. Alta reutilización
A medida que la tecnología avanza, se necesitan más y más formas de acceder a las aplicaciones. El patrón MVC permite el uso de diferentes estilos de vistas para acceder al mismo código del lado del servidor, porque múltiples vistas pueden compartir un modelo, incluido cualquier navegador WEB (HTTP) o navegador inalámbrico (wap)
c.
MVC de bajo costo de ciclo de vida Reducir el contenido técnico del desarrollo y mantenimiento de interfaces de usuario.
d) Implementación rápida. El
uso del modelo MVC puede reducir en gran medida el tiempo de desarrollo. Permite a los programadores (desarrolladores de Java) centrarse en la lógica empresarial ya los programadores de interfaces (desarrolladores de HTML y JSP) centrarse en la presentación.
e) Alta capacidad de mantenimiento La
separación de la capa de vista y la capa de lógica empresarial también hace que las aplicaciones WEB sean más fáciles de mantener y modificar.
f) Gestión favorable de la ingeniería de software
Dado que las diferentes capas realizan sus funciones, las diferentes aplicaciones de cada capa tienen algunas de las mismas características, lo que conduce a la gestión de los códigos de programa a través de la ingeniería y las herramientas. El controlador también proporciona una ventaja, es decir, puede usar el controlador para conectar diferentes modelos y vistas para completar las necesidades del usuario, de modo que el controlador puede proporcionar un medio poderoso para construir aplicaciones. Dados algunos modelos y vistas reutilizables, el controlador puede seleccionar el modelo para procesar según las necesidades del usuario, y luego seleccionar la vista para mostrar los resultados del procesamiento al usuario.

1.4 Desventajas
a) No existe una definición clara,
no es fácil entender completamente MVC. El uso de MVC requiere una planificación cuidadosa y, dado que sus principios internos son más complicados, se necesita algo de tiempo para pensar. Al mismo tiempo, dado que el modelo y la vista deben estar estrictamente separados, esto también trae ciertas dificultades para depurar la aplicación. Cada componente debe probarse a fondo antes de su uso.
b) No es adecuado para aplicaciones de pequeña y mediana escala.
Dedicar mucho tiempo a aplicar MVC a aplicaciones que no son muy grandes generalmente superará las ganancias.
c. Aumentar la complejidad de la estructura e implementación del sistema.
Para interfaces simples, siga estrictamente MVC y separe el modelo, la vista y el controlador, lo que aumentará la complejidad de la estructura, y puede generar demasiadas operaciones de actualización y reducir la eficiencia operativa.
d. La vista y el controlador están demasiado conectados. La
vista y el controlador están separados entre sí, pero son componentes estrechamente conectados. La vista no tiene controlador y su aplicación es muy limitada, y viceversa, lo que dificulta Su reutilización independiente.
e) Acceso ineficiente a los datos del modelo por parte de la vista
Dependiendo de la interfaz de operación del modelo, la vista puede requerir múltiples llamadas para obtener suficientes datos de visualización. El acceso innecesariamente frecuente a los datos sin cambios también afectará el rendimiento operativo.
f. Las herramientas o constructores de interfaz de alto nivel generales no admiten patrones
. El costo de modificar estas herramientas para satisfacer las necesidades de MVC y construir componentes separados es muy alto, lo que ocasionará dificultades en el uso de MVC.

1.5 MVC activo / pasivo MVC
activo: La
vista no espera a que el controlador le notifique que el modelo está actualizado antes de obtener datos del modelo y actualizar la pantalla. En su lugar, monitorea la actualización del modelo en sí (si se usa el modo de observador) o pregunta activamente si el modelo está actualizado. Esta forma de esperar la notificación del controlador es la implementación "MVC pasiva" que se describe a continuación.

MVC pasivo: el
controlador usa la vista y le notifica para actualizar la visualización de datos. La vista solo hace esto cuando el controlador le notifica que obtenga datos del modelo. El controlador no solo es responsable de manejar los cambios en los datos del modelo, sino que también puede incluir lógica de representación para la vista.

2.MVP

2.1 Concepto
El nombre completo de MVP es Model-View-Presenter, Model proporciona datos, View es responsable de la visualización, Controller / Presenter es responsable del procesamiento lógico.
MVP evolucionó de MVC, que separa inteligentemente la vista del modelo a través del presentador. En este modo, la vista suele ser inicializada por el presentador, que presenta la interfaz de usuario (UI) y acepta comandos emitidos por el usuario, pero no realiza ningún procesamiento lógico en la entrada del usuario, sino que solo reenvía la entrada del usuario al presentador. Por lo general, cada vista corresponde a un presentador, pero también es posible que una vista con una lógica empresarial más compleja corresponda a varios presentadores, y cada presentador completa parte del trabajo de procesamiento comercial de la vista, reduciendo la complejidad de un solo presentador. El presentador también puede ser reutilizado por múltiples vistas con los mismos requisitos comerciales, aumentando la reutilización de un solo presentador. El presentador contiene la mayor parte de la lógica de presentación, que se utiliza para procesar la vista, interactuar con el modelo para obtener o actualizar datos, etc. El modelo describe la lógica de procesamiento del sistema, y ​​el modelo no sabe nada sobre el presentador y la vista.

2.2 Ventajas
a. El modelo está completamente separado de la vista, podemos modificar la vista sin afectar el modelo
b. El modelo se puede usar de manera más eficiente, porque todas las interacciones ocurren en un lugar, dentro del
Presentador c. Podemos usar un Presentador para múltiples Una vista sin cambiar la lógica del Presentador. Esta característica es muy útil porque la vista cambia con más frecuencia que el modelo.
d. Si ponemos la lógica en el Presentador, entonces podemos probar la lógica sin la interfaz de usuario (prueba unitaria)

2.3 Desventajas
a) El aumento de la complejidad del código, especialmente para el desarrollo de pequeñas aplicaciones de Android, hará que el programa sea redundante.
b) Además de la lógica de la aplicación en el Presentador / (controlador), también hay mucha lógica de sincronización manual de Vista-> Modelo y Modelo-> Vista, lo que hará que el Presentador se hinche y sea difícil de mantener.
c. El proceso de renderizado de la vista también se colocará en el Presentador, lo que hará que la vista interactúe con el Presentador con demasiada frecuencia. Si una vista en particular se representa demasiado, hará que el Presentador esté demasiado conectado con la vista. Una vez que se debe cambiar la vista, el Presentador también necesita Modificado, no es posible reducir el acoplamiento y aumentar la reutilización como se esperaba.

3. Diferencia

Lo mismo:
1. El núcleo del patrón MVC / P es separar el modelo de la vista / controlador, para que el modelo sea independiente de ellos, por lo que el modelo no contiene referencias a vistas y controles.
2. MVP evolucionó a partir del modelo clásico MVC , y sus ideas básicas son similares: Controller / Presenter es responsable del procesamiento lógico, el modelo MVP Model proporciona datos y View es responsable de la visualización.
Diferencias:
1. El presentador en MVP maneja las operaciones de usuario enviadas por la vista, mientras que en MVC la vista maneja estas operaciones.
2. El presentador en MVP usa datos actualizados para actualizar el modelo. En MVC pasivo , el controlador simplemente notifica a la vista para obtener nuevos datos del modelo actualizado, mientras que el modelo en MVC activo notifica a la vista para actualizar la pantalla, el controlador no Necesito hacer un trabajo.
3. View en MVP no usa directamente Model. La comunicación entre ellos se realiza a través de Presenter (Controller en MVC). Todas las interacciones ocurren
dentro de Presenter. En MVC , View leerá desde el Model directo. Los datos no pasan a través del Responsable.
4. MVCEn, View puede acceder directamente al modelo. Por lo tanto, la Vista contendrá información del Modelo e inevitablemente se incluirá cierta lógica comercial. En el modelo MVC , el modelo más afectado no se modifica y hay varias pantallas y vistas diferentes del modelo al mismo tiempo. Por lo tanto, en el modelo MVC , el modelo no depende de la vista, pero la vista depende del modelo.

Materiales de referencia:
biblioteca personal 360, ciudad vacía 66. La diferencia entre mvc y mvp
Enciclopedia Baidu. Modelo MVP
Enciclopedia Baidu. Marco MVC

Supongo que te gusta

Origin blog.csdn.net/haha_7/article/details/109191712
Recomendado
Clasificación