Translate

viernes, 22 de junio de 2012

Es Delphi MVC ? .. Parte I



Es Delphi MVC ? .. o no lo es ? .. Pero ante todo, que es MVC ?

MVC es un patron de diseño, basado en una abstraccion que describe las tres partes que (segun esta abstraccion) constituyen un Sistema y la forma en que interactuan entre si.

Estas partes son el Modelo, las Vistas y los Controladores. Y es facil de entender .. una vez que se comprende que MVC es una abstraccion y no una implementacion concreta.

Que es el Modelo ? .. es la representacion abstracta de 'algo' (tipicamente una Empresa) con sus objetos, reglas, conceptos, etc .. (Clientes, Proveedores, Comprobantes, Politicas de Precios, etc) .. pero no necesariamente una Empresa, puede ser cualquier otra cosa 'viva' .. 

Que son las Vistas ? .. simplemente las distintas representaciones mas o menos complejas de aspectos de un Modelo. Pueden ser Consultas, Graficos, Formularios, Reportes, etc .. 

Que son los Controladores ? .. son mecanismos construidos especificamente para que las Vistas y el Modelo interactuen con o sin la presencia de un Operador. A estos controladores los llamamos 'codigo' .. 'logica de control' .. 'manejadores de eventos' .. 

Es importante entender a continuacion lo siguiente:

El Modelo puede existir, como representacion abstracta de 'algo' sin que haya una vista y mucho menos controladores. O sea .. el modelo de una Empresa puede existir sin que jamas se construya una (o mas de una) aplicación con sus Pantallas, Reportes, etc.

Las Vistas se construyen y agregan segun deseo o conveniencia y el que una Vista cambie, no cambia en nada al Modelo. Por ejemplo en vez de mostrar datos en formato de registro pasa a mostrarlos en formato tabular .. o se muestran mas datos .. o simplemente cambia el color de fondo del Formulario .. cambia la Vista, pero no el Modelo.

Los controladores permiten la interaccion concreta entres las Vistas y el Modelo .. en un ida y vuelta .. Si 'algo' ocurre en una Vista que requiere de codigo de control - por ejemplo el Operador presiona el boton 'Okey' - .. se ejecutara ese codigo de control que accionara sobre el Modelo (por ejemplo mandando los datos de la Vista para que sean grabados y de esa forma alterando el Modelo) .. y al reves .. si 'algo' ocurre en el Modelo, a traves de un mecanismo de transmision este le informara a cada uno de los Controladores los que a su vez accionaran sobres las Vistas para que ajusten su representacion del Modelo (por ejemplo cambian datos en el Modelo que deben ser resfrescados en las distintas Vistas que representan esos datos)

Dijimos al principio .. 'MVC es un patron de diseño, basado en una abstraccion ..' .. hasta aqui describimos la abstraccion sobre la que esta basado el patron MVC .. pero, y cual es ese patron ?

Simplemente que el Modelo y las Vistas deben existir separadamente - lo mas separadamente posible - de forma tal que un cambio en el diseño del Modelo impacte lo minimo posible en las Vistas y al reves .. un cambio en cualquiera de las Vistas no cambie en nada al Modelo.

Ademas que el diseño general permita la interaccion entre el Modelo y las Vistas .. a traves de los Controladores. Como se dijo antes .. los cambios en el Modelo llegan a las Vista a traves de los Controladores y los cambios en las Vistas llegan al Modelo tambien a traves de estos.



Que tiene que ver Delphi con todo esto ? .. pues nada .. Delphi es un marco de desarrollo de aplicaciones que permite o no implementar el patron MVC con mayor o menor facilidad que otros entornos de programacion.

En la segunda parte de este artículo veremos como en realidad .. Dephi permite implementar en gran parte este patron de manera casi natural.

No hay comentarios:

Publicar un comentario