model-view-controller - mvc - mvvm android ejemplo
¿El enlace de datos es fundamentalmente incompatible con MVC? (3)
En mi opinión, la vinculación de datos puede ser una implementación válida del patrón MVC, ya que el mecanismo de enlace de datos en sí mismo actúa como controlador en ese caso.
Por ejemplo, en el angular mencionado, parece que la función $ watch es un atajo para implementar características que son funciones y funciones típicas del controlador de una manera al estilo MVC.
Entonces, en mi opinión, el enlace de datos es un paso evolutivo que implementa las mejores prácticas aprendidas mediante la implementación de controladores MVC clásicos .
ACTUALIZAR
Pero en el sentido original del patrón, caracterizaría el enlace de datos más como MVP o Passive View .
Pero las diferencias no son tan agudas en mi opinión, ya que siempre depende de su tecnología de interfaz de usuario.
El enlace de datos establece un acoplamiento directo entre la vista y el modelo, omitiendo así el controlador. Fundamentalmente, esto rompe con el patrón arquitectónico de Model-View Controller, ¿estoy en lo cierto al pensar esto? ¿Esto hace que el enlace de datos sea "algo malo"?
Editar: como ejemplo, angular afirma ser un framework MVC, pero una de sus principales características es el enlace de datos.
No necesariamente, ya que no tiene que vincular sus objetos de Modelo a la vista.
Lo que suelo hacer es crear DTO simples (u Objetos de presentación) que contengan solo los datos que quiero mostrar, y eso es lo que muestra la capa de Vista.
En ese caso, el Controlador conserva su función como traductor entre las acciones realizadas en los DTO y las acciones en las entidades de Modelo subyacentes.
En realidad, cuando sus datos se abstraen correctamente, el acto de enviar el contenido de sus modelos a su UI es una tarea repetitiva que normalmente conduce a algún tipo de "ayudantes".
Digamos que inserte una lista de elementos en un cuadro combinado. Esto no es necesariamente parte del controlador, ya que es posible que desee compartir dicha funcionalidad. También presionar el valor del control (para hacerlo simple, digamos el texto de un cuadro de texto) es repetitivo y bidireccional.
También aquí repites tu auto (piensa en DRY) y haces lo mismo una y otra vez.
Ese es exactamente el punto donde entra en juego el enlace de datos. Esto puede hacerse cargo de las tareas que, de todos modos, son idénticas para los controles simples (casilla de verificación, cuadro de texto, cuadro combinado). Para el control de cuadrícula y similares, puede ser específico.
Eche un vistazo a mvc & databinding: ¿cuál es el mejor enfoque? . Aquí discuto cuál podría ser el óptimo al usar databinding en combinación con MVC.