ARQUITECTURA DE SOFTWARE MODELO-VISTACONTROLADOR (MVC)
Modelo Vista Controlador (MVC) es un patrn de arquitectura de software que
separa los datos de una aplicacin, la interfaz de usuario, y la lgica de negocio en tres componentes distintos.(Segn Santa Wikpedia) Un poco de teora.
Modelo: Esta es la representacin especfica de la informacin con la
cual el sistema opera. Tambin es la que interacta directamente con la base de datos
Vista: Este presenta el modelo en un formato adecuado para interactuar
con el sistema, usualmente la interfaz de usuario.
Controlador: Este responde a eventos, usualmente acciones del
usuario, e invoca peticiones al modelo y, probablemente, a la vista.
Flujo que sigue la implementacin de este modelo.
1. El Usuario interacta con el sistema a travs de la Vista de Usuario (GUI) por ejemplo presionando botones, introduciendo texto, moviendo el mouse por la pantalla, etc. 2. El Controlador es el que recibe todas estas acciones provocadas por la interaccin Usuario-Interfaz y acta en consecuencia, Si Evento X entonces realizar Accin Y. 3. El controlador entonces accede al Modelo para, dependiendo del evento solicitado, realizar una actualizacin (registro, edicin o eliminado de informacin) en la base de datos o solicitar informacin (una consulta por ejemplo). 4. La informacin es procesada en modelo-controlador y es el controlador el encargado de generar una salida para el usuario (Mensaje de error si ocurri un problema, actualizacin de informacin presente en pantalla o generar una nueva pantalla). 5. Entonces la Interfaz de usuario (Vista) queda otra vez en espera de una accin del usuario del sistema para repetir el ciclo nuevamente. Hasta ah todo bien, es la teora resumida (espero que bien) de lo que es un Patrn MVC (Model, View and Controller) pero nada es la teora si no la llevamos a la prctica, sin embargo debo decir que el patrn MVC es ms comn en aplicaciones web que en aplicaciones de escritorio, buscando informacin en la internet son pocas y la gran mayora informacin en
ingles (sin dibujos
) sobre aplicaciones Swing-Java, pero eso no quiere decir que no se pueda, si se puede, y es ms Java tiene sus propias herramientas para implementar este patrn (Observer y Observable)