Hola de nuevo y bienvenidos a mi blog, en está oportunidad voy a explicarles el modelo de Vista-Controlador aplicado al proyecto que hemos venido trabajando "Proyecto de Cuadrilateros" ; Sin mas preambulos de lo que se encarga el modelo de vista-controlador es de separar cada uno de los métodos que se invocan y ponerlos en la fase o en la zona en donde corresponde, ya sea la parte de vista, o en el control o en el modelo esto es un poco dificil de entender, pero a su vez es muy util porque nos permite ver organizadamente cada elemento a donde pertenece, y como va organizado dentro del modelo general. veamos nuestro modelo vista-controlador (MVC) con UML para entenderlo dentro de nuestro proyecto.
Al observar y analizar nuestro modelo de Vista-Controlador tenemos tres niveles y analizandolos el primero es la vista: en esta tenemos todo lo correspondiente a la parte visual del programa como labels botones textbox combobox, todo el entorno gráfico contenido en el windows forms, tenemos tambien la parte de control o controlador: en esta fase debemos controlar las características que nos pide el usuario, si este nos dice que quiere un rombo generamos un objeto tipo cuadrilatero pero en caso de que nuestro usuario eliga haver otra figura reutilizaremos la clase abstracta cuadrilatero y generaremos un entorno nuevo de trabajo para poder graficar esta nueva figura obvio con características ya establecidas por la clase cuadrilatero, lo mismo con cuadrado que va a heredar de rectangulo;y en la fase de modelo es lo que hemos venido trabajando de herencia pues aca vemos como los diferentes cuadrilateros heredan de la clase superior cuadrilatero que además es abstracta.
De aca en adelante usamos lo que es el constructor privado esto con el fin de que sea la misma clase controlador la que lo maneje, la variable del método controlador a la que hemos llamado crtl esta la vamos a declarar como estatica "static" en programación y porque estatica pues para que solo se use una vez y no pueda ser modificada o instanciada de nuevo, esto con el fin de tener todo bien organizado como lo habiamos mencionado antes y tambien por si se requiere incluir mas metodos atributos o figuras se tenga bein claro donde esta cada cosa.
A partir de aca ya al heber definido un metódo "estatico" vamos a ahorrar por decir así la memoria que utilizamos en el computador para crear los distintos cuadrilateros, mas importante es saber que definimos el metodo controlador como estático para evitarnos crear objetos sin ninguna clase de control ya que deberiamos si queremos trabajar pulidamente reescribir figuras cuadradas mas no acumular la basura en la memoria del Pc. La clave para hacer esto que acabo de explicar es preguntarle a nuestro método estatico que si nuestro controlador es nulo entonces nos genere un nuevo controlador en memoria para crear la nueva figura, pero si no lo es que no llene mas espacio en memoria sino que reemplaze lo que se habia creado de las mismas características de esa figura y realice una nueva.
Controlador static demeControl(){ if(ctrl == null) ctrl = new Controlador(); return ctrl; }
Esto es lo que conocemos como el patrón solitario o <<singleton>> y es una gran ventaja a la hora de programar pues lo podemos invocar cuando queramos y nos ayuda enormemente en llamar a cada una de las funciones que controla a los diferentes cuadrilateros, ya sea un rectangulo un cuadrado un rombo un deltoide o lo que sea....
Aca un ejemplo de como se utilizaria el singleton para crear un cuadrado:
Controlador.demeControl().creaCuadrado(4);
Controlador.demeControl().consultarPerimetro();
Controlador.demeControl().consultarArea()
...
Y nos crea un cuadrado de lados de valor 4 unidades y con el mismo controlador le pedimos que nos de el area y el perimetro, que ya esta determinado al hacer la reutilización del código. Bueno muchachos espero les halla sido de utilidad esta explicación de lo que es el modelo vista-controlador "MVC" y de como es muy útil para aplicarlo en este caso al proyecto que hemos venido trabajando de cuadrilateros.