Patrones Creacionales: Abstract Factory

Publicado el 05 noviembre 2014 por Alexander171294 @std_io
En entradas anteriores vimos Factory Method, y en esta entrada veremos Abstract Factory un patron creacional que amplía el rango de Factory Method. También vimos ObjectPool y una introducción a los patrones de diseño.
Recomiendo leer como minimo el Factory Method para que les sea más sencillo el Abstract Factory.
Si vemos la explicación del Factory Method notaremos que es útil para la creación de objetos de clases subtipos de una en particular, pero si quicieramos tener más de un tipo de clase principal, deberíamos hacer uso de un patrón que lo soporte.
Podemos ver en wikipedia como se explica que si nosotros trabajaramos con botones, dependiendo de la plataforma tendríamos un gran tipo de objeto para botones en linux y uno para botones en windows, si nosotros quicieramos crear objetos de ambos tipos con un factory necesitaríamos utilizar este patrón.
La solución para este problema es simple, si vemos el código de ejemplo de la publicación de Factory Method veremos que la factoría nos permitía crear objetos del tipo de EjemploConcreto, ahora si quicieramos además poder crear de tipode clases OtroEjemploConcreto, bastaría con crear métodos factory para cada clase en particular.
podemos ver el código aquí:
http://pastebin.com/V0HS6fU2
y un diagrama del Abstract Factory extraído de wikipedia:

Un saludo para todos! espero que les haya gustado la entrada y nos veremos la próxima!