2011-03-21 16 views
8

Data binding 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"?¿El enlace de datos es fundamentalmente incompatible con MVC?

Editar: Como ejemplo, angular dice ser un framework MVC, pero una de sus principales características es el enlace de datos.

+0

+1 ¡Buena pregunta! – Nilesh

Respuesta

5

En mi opinión, el Enlace 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 el controlador en ese caso.

Por ejemplo, en el angular mencionado, parece que la función $ watch es un atajo para implementar funciones que son típicas responsabilidades y funciones del controlador de una manera al estilo MVC.

En mi opinión, el enlace de datos es un paso evolutivo que implementa las mejores prácticas aprendidas al implementar classic controladores MVC.

ACTUALIZACIÓN

Pero en sentido patrón original que yo caracterizaría de unión más como MVP o Passive View datos.

Pero las diferencias no son tan claras en mi opinión, ya que siempre depende de la tecnología de la interfaz de usuario.

+0

+1 ¡Buena respuesta! – Nilesh

5

No necesariamente, ya que no tiene que vincular los objetos de su 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 un traductor entre las acciones realizadas en los DTO y las acciones en las entidades de modelo subyacentes.

+0

+1 ¡Buena explicación! – Nilesh

+0

databinding es una función adicional que elimina el código de la placa de la caldera de tareas a menudo repetitivas cuando se usan patrones de MV (completamente sensibles) desde mi punto de vista. Eche un vistazo aquí: [mvc y databinding, ¿cuál es el mejor enfoque?] (Https: //codingsoul.wordpress.com/2016/04/15/mvc-databinding-whats-the-best-approach /) –

0

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 inserta 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í repite su auto (piense en DRY) y haga lo mismo en y otra vez.

Ese es exactamente el punto en el que 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: what's the best approach?. Aquí discuto cuál podría ser el óptimo al usar databinding en combinación con MVC.

Cuestiones relacionadas