Modo MVC: La Vista de Modelos intenta controlar el controlador, que es el modo principal actual, y se utiliza como modo básico de entrada de software de servidor para aprender y dominar, y el framework principal Struts 1/2 JSF Wicket básicamente soporta el modo MVC.
Sin embargo, con la continua popularización de B/S y aplicaciones de Internet, Web 2.0 y un gran número de aplicaciones interactivas frecuentes como redes sociales y juegos, el modo MVC, relativamente estático, ya no es adecuado para aplicaciones altamente interactivas y orientadas al comportamiento.
El modelado de dominio DDD en sí mismo presta más atención a la estructura; su objeto valor entidad y servidor también es una especie de división estructural, pero no enfatiza la importancia de las funciones y comportamientos del objeto, y esta es la única diferencia entre objetos y bases de datos.
Al contrarioDiseño de objetos: Roles, responsabilidades y colaboracionesEl libro propone que el objeto en realidad está desempeñando un papel determinado, y ese papel es responsable, y luego se implementará un comportamiento interactivo determinado en un contexto de escena determinado, lo cual se ha discutido plenamente en Jdon:
DCI, modelo de dominio, algunas ideas para eventos de dominio
Pensamiento arquitectónico asíncrono: Implementar modelado de dominio con Akka
El libro resume las cuatro principales desventajas de los controladores centralizados, y los controladores de MVC en realidad pertenecen a este estilo de controlador centralizado:
1. La lógica de control puede volverse demasiado complexa. Los controladores pueden ser complicados, y es común que muchas personas escriban código empresarial en los controladores Action de Struts.Todas las acciones son en acciones, y algunas acciones son casi miles de líneas.
2. Los controladores pueden volverse dependientes del contenido de los titulares de la información. Los controladores dependen de centros de datos o bases de datos de información, los controladores hacen muchas cosas, lo que significa que los objetos de dominio hacen muy poco, y el controlador no solo hará lo que al final, sino que también decidirá aspectos estratégicos, sino que también se complementan cuestiones tácticas como cómo hacerlo y cómo implementarlo.
3. Los objetos pueden acoplarse indirectamente a través de las acciones de su controlador. Los objetos se acoplan indirectamente a través de las acciones del controlador, un objeto se consulta en el controlador y luego se copia a otro, y ambos objetos se acoplan entre sí.
4. El único trabajo interesante se realiza en el controlador.
El controlador de MVC es una especie de modo Mediador, pero también un controlador centralizado, que es la principal diferencia respecto al modo observador: el modo Mediador encapsula la comunicación, mientras que la comunicación descentralizada del observador, desde el punto de vista de la comunicación, el controlador también tiene sus defectos inherentes, fácil de convertirse en un concentrador grande y totalmente acoplado, todos ellos paraOONo se tolera.
Arquitectura DCIEs un concepto nuevo que solo ha surgido recientemente y que analiza el software desde una nueva perspectiva, lo que coincide y tiene razón respecto al diseño basado en el deberDDDdesarrollo y mejora.
DCI es la abreviatura de Interacciones de Contexto de Datos, y su contribución importante es proponer el concepto de escenas, que no se menciona en el libro Desarrollo Impulsado por el Deber y que solo niega el MVC, expone sus problemas y no propone alternativasDCIEs la arquitectura alternativa de MVC, y DCI sustituye MVC por escenarios para sustituir controladores, como se muestra en la figura de abajo (la imagen es de él).Inglés original ElDCI Architecture: A New Vision of Object-Oriented Programming):
La escena en realidad saca algunos de los controles y modelos de MVC y los reensambla en forma de escenas de personajes. Este es un ángulo nuevo que es completamente diferente de la consideración del modo MVC, que está más alineado con este ánguloOO。
Recientemente, alguien lo ha mencionadoContexto de escena es un nuevo tipo de objeto, la escena no solo puede ser reemplazadaSOALos servicios web también pueden sustituir a los controladores MVC.
Personalmente, creo que la nueva arquitectura jerárquica podría verse así en el futuro: Ver --> Contexto ---> Modelo de dominio ---> Componente/Repositorio
El modo MVC está muerto.
|