Adaptador de vista de modelo ( MVA ) o controlador de mediación MVC es un patrón de arquitectura de software y una arquitectura de varios niveles . En aplicaciones informáticas complejas que presentan grandes cantidades de datos a los usuarios, los desarrolladores a menudo desean separar los datos (modelo) y las preocupaciones de la interfaz de usuario (vista) para que los cambios en la interfaz de usuario no afecten el manejo de datos y que los datos se puedan reorganizar sin cambiar la interfaz de usuario. MVA y MVC tradicionalambos intentan resolver este mismo problema, pero con dos estilos diferentes de solución. MVC tradicional organiza el modelo (p. Ej., Estructuras de datos y almacenamiento), vista (p. Ej., Interfaz de usuario) y controlador (p. Ej., Lógica empresarial) en un triángulo, con modelo, vista y controlador como vértices, de modo que cierta información fluya entre los modelo y vistas fuera del control directo del controlador. El modelo-vista-adaptador resuelve esto de manera bastante diferente del modelo-vista-controlador al organizar el modelo, el adaptador o el controlador mediador y la vista linealmente sin ninguna conexión directa entre el modelo y la vista. [1] [2]
La vista y el modelo no se comunican directamente
La vista está completamente desacoplada del modelo, de modo que la vista y el modelo pueden interactuar solo a través del controlador o adaptador mediador entre la vista y el modelo. A través de esta disposición, solo el adaptador o controlador mediador tiene conocimiento tanto del modelo como de la vista, porque es responsabilidad exclusiva del adaptador o controlador mediador adaptarse o mediar entre el modelo y la vista; de ahí los nombres adaptador y mediador. El modelo y la vista se mantienen intencionalmente ajenos el uno al otro. En MVC tradicional, el modelo y la vista se conocen entre sí, lo que podría permitir un acoplamiento desventajoso de las preocupaciones de la vista (por ejemplo, la interfaz de usuario) en el modelo (por ejemplo, la base de datos) y viceversa, cuando la arquitectura podría haber sido mejor atendida por el esquema de la base de datos y la presentación de la información en la interfaz de usuario están completamente divorciados entre sí y se les permite divergir radicalmente. Por ejemplo, en un editor de texto , el modelo podría ser mejor una tabla de piezas (en lugar de, digamos, un búfer de espacios o una lista de líneas enlazadas ). Pero, la interfaz de usuario debe presentar el estado de reposo final de las ediciones en el archivo, no una presentación de sobrecarga de información directa de los meticulosos deltas deshacer-rehacer sin procesar de la tabla de piezas y las operaciones incrementales en ese archivo desde que comenzó la sesión de edición actual.
El modelo ignora intencionalmente las vistas
Esta separación de preocupaciones permite que una amplia variedad de vistas diferentes accedan indirectamente al mismo modelo, ya sea mediante exactamente el mismo adaptador o mediante la misma clase de adaptadores. Por ejemplo, se puede acceder a un modelo, esquema y tecnología de almacenamiento de datos subyacentes a través de diferentes vistas, por ejemplo, Qt GUI , Microsoft MFC GUI, GTK + GUI, Microsoft .NET GUI, Java Swing GUI, sitio web Silverlight y sitio web AJAX , donde ( a diferencia de MVC tradicional), el modelo se mantiene completamente ajeno a la información que fluye hacia estas interfaces de usuario . El adaptador o clase de adaptadores mantiene al modelo completamente ajeno a que admite múltiples interfaces de usuario y quizás incluso admite esta variedad al mismo tiempo. Para el modelo, estos múltiples tipos de interfaz de usuario se verían como múltiples instancias de un usuario genérico ajeno al tipo de tecnología.
La vista ignora intencionalmente los modelos
Asimismo, cualquier interfaz de usuario puede mantenerse intencionalmente ajena a una amplia variedad de modelos diferentes que pueden subyacer al controlador o adaptador mediador. Por ejemplo, el mismo sitio web puede mantenerse ajeno al hecho de que puede ser servido (A) por un servidor de base de datos SQL como PostgreSQL , Sybase SQL Server o Microsoft SQL Server que tiene lógica empresarial integrada en el servidor de base de datos a través de procedimientos almacenados. y que tiene transacciones que el servidor puede revertir o (B) por un servidor de base de datos SQL como MySQL que carece de una o más de estas capacidades, o (C) por una base de datos RDF que no es SQL , porque el sitio web interactúa solo con el controlador mediador o adaptador y nunca directamente con el modelo.
Varios adaptadores entre el mismo par modelo-vista
Además, se pueden crear varios adaptadores para cambiar la forma en que una vista presenta los datos para un modelo determinado. Por ejemplo, diferentes adaptadores pueden imponer diferentes conjuntos de datos primitivos, que a su vez imponen una lógica empresarial diferente para la misma base de datos subyacente y para el mismo sitio web presentado externamente. En este escenario, una clase de varios adaptadores o controladores mediadores puede representar las variaciones en la lógica empresarial entre el mismo modelo de base de datos y la misma vista del sitio web.
Ver también
- Modelo – vista – controlador
- Modelo – vista – presentador
Referencias
- ^ Zamudio Lopez, Sheydi Anel; Santaolaya Salgado, Rene; Fragoso Diaz, Olivia Graciela (junio de 2012). "Reestructuración de marcos orientados a objetos a arquitectura modelo-vista-adaptador". Transacciones IEEE América Latina (en español). 10 (4): 2010-2016. doi : 10.1109 / TLA.2012.6272488 .
- ^ Thiruvathukal, George K .; Läufer, Konstantin (2018), "Gestión de la simultaneidad en interfaces de usuario móviles con ejemplos en Android", Temas de informática distribuida y paralela , Springer, Cham, págs. 243–285, doi : 10.1007 / 978-3-319-93109-8_9 , ISBN 9783319931081