Buscar (Don't Edit)

miércoles, 26 de diciembre de 2012

Patrones de Diseño: el patrón Facade

Hola de nuevo!

Como prometí en el post anterior, seguimos con los tutoriales sobre patrones de diseño, y ahora les traigo un pequeño ejemplo acerca del uso del patrón Facade (o Fachada).

El Patrón Facade
El objetivo de éste patrón es el de simplificar el sistema y reducir su complejidad a través de la división en subsistemas, proporcionando una interfaz (de nivel más alto) de acceso a éstos. El objetivo es reducir la comunicación y dependencias entre subsistemas y, de ésta manera, conseguir un sistema mas sencillo(desde el punto de vista del cliente).

Sistema de administración de cursos, alumnos y profesores utilizando el patrón Facade
En el post anterior les había prometido que trataría de que los tutoriales aquí mostrados fueran aplicaciones reales de los patrones dentro de cualquier desarrollo. Pues cumpliendo esa promesa, el ejemplo que les mostraré fue algo que implemente hace poco tiempo en uno de mis desarrollos, concretamente un CRM escolar. Dentro de dicho CRM se implementó un apartado de administración a cursos, alumnos y profesores. Basicamente lo que hice fue utilizar el Facade para que sea una puerta de entrada a los distintos subsistemas(cursos, alumnos y profesores) y de ésta manera simplificar el sistema de administración. Veamos el ejemplo.

Lo primero que haré será crear las clases para los módulos curso, alumno y profesor. Los atributos y constructores serán de lo más básico y los métodos sin cuerpo, debido a que el objetivo de éste tutorial es únicamente mostrar el funcionamiento del patrón Facade y no de cómo crear un sistema CRUD. Las clases quedarían de la siguiente manera:

Lo siguiente será hacer la fachada, para esto crearemos una clase llamada Facade y declararemos objetos de cada subsistema(ModuloCurso, ModuloAlumno y ModuloProfesor). Ahora declararemos los métodos que permitirán acceder a cada uno de los subsistemas a través de sus respectivas instancias. Para fines prácticos y con el objetivo de no extender demasiado el tutorial solo implementaremos los métodos de búsqueda para cada subsistema. La clase Facade entonces quedaría de la siguiente manera:

Listo, ya tenemos implementado nuestro patrón Facade que accede a los distintos subsistemas. Ahora, lo único que tenemos que hacer para llamarlo desde nuestro código principal es crear una instancia de la clase Facade y desde ella acceder a los métodos de los distintos subsistemas.


Y eso es todo. Ya tenemos un pequeño sistema de administración utilizando el patrón Facade. Cabe mencionar que es posible implementar varios patrones dentro nuestro código. Por ejemplo, éste sistema debe tener (obviamente) una conexión con una base de datos que pudiera implementar el patrón Singleton, por mencionar alguno.

Eso es todo por ahora. Hasta el siguiente tutorial!
Saludos!

No hay comentarios.:

Publicar un comentario