martes, 22 de mayo de 2012

Patrones de diseño: implementando Abstract Factory

Los patrones molan, si sabes cómo usarlos, más.

Hace algún tiempo compramos en la oficina el libro “Patrones de diseño para C#”. Este libro detalla los 23 modelos de diseño fundamentales y aunque aún no he tenido tiempo de leerlo al completo, lo que he visto está bien explicado y es sencillo de entender.

No es mi intención debatir los beneficios que se obtiene al utilizar patrones de diseño, de eso seguro que puedes encontrar muchísima información en miles de blogs.

Sin embargo, si lo que buscas son ejemplos de cómo (pero sobretodo porqué) implementar un patrón de diseño desde cero, ahí amigo, seguro que lo tienes más difícil.

Los ejemplos que yo he encontrado, muchas veces son excesivamente formales, y se centran en explicar el patrón en sí, implementando algún ejemplo concreto sobre la definición formal del patrón.

Mi idea es partir de un escenario en el que el código es correcto, en términos funcionales, pero no es correcto en el sentido de que incumple varios principios SOLID, y además en el momento en el que las especificaciones cambien, va a ser también más complicado de mantener.

Veremos que para optimizar el escenario propuesto, el patrón que mejor encaja es el denominado “Factoría Abstracta”. Trataré de explicar porqué, y reescribiremos el código hasta tener la implementación del patrón completada.

De esta manera, podremos evaluar los beneficios que vamos a obtener al usar la Factoría Abstracta, nuestro código ganará calidad, nosotros algo de ego (no mintáis, malditos geeks!), a partir del momento en el que decidáis incorporar el uso de patrones a vuestros proyectos, miles de gatitos dormirán tranquilos… y a nosotros no nos “sangrarán” los ojos al ver nuestro ahora precioso código.

Bueno, al turrón! y ánimo, que me ha salido un “troncho” de post que no es para unas prisas ;-D