Patrones creacionales
Que son los patrones creacionales
Patrones de Diseño Creacionales - Abstract Factory
Los patrones de diseño creacionales son aquellos que abstraen el proceso de
instanciación. Ellos ayudan a hacer un sistema independiente de como sus
objetos son creados, compuestos, y representados. Una patrón creacional de
clase usa herencia para variar la clase que es instanciada, mientras un patron
creacional de objeto delegará la instanciación a otro objeto.
Los patrones creacionales se vuelven importantes en sistemas que pasan a
depender más de la composición de objetos que de la herencia de clases.
Como eso sucede, el enfasis cambia de modificar dificilmente un conjunto fijo
de comportamientos hacia definir un conjunto pequeño de comportamientos
fundamentales que pueden ser compuestos dentro de cualquier numero de los
más complejos. Creando así objetos con un comportamiento particular que
requiere más que simplemente instanciar una clase.
Abstract Factory
Intenta:
proveer una interfaz para la creación de familias objetos relacionados o
dependientes sin especificar sus clases concretas.
Aplicación:
Un sistema debería ser independiente de como sus productos son creados,
compuestos, y representados.
Un sistema debería ser configurado con una de múltiples familias de productos.
Una familia de objetos producto relacionados es diseñada para ser usados
juntos y necestás hacer cumplir esta restricción.
Buscás proveer una biblioteca de clases de productos, y buscas revelar solo
sus interfaces, no su implementación.
Participantes:
Abstract Factory - declara una interfaz para operaciones que crean objetos
producto abstractos.
ConcreteFactory - implementa las operaciones para crear objetos producto
concretos.
AbstractProduct - declara una interfaz para un tipo de objeto producto.
ConcreteProduct - define un producto objeto para ser creado por el
correspondiente Concrete Factory. - implementa la interfaz del AbstractProduct.
Client - usa solo las interfaces declaradas por las clases AbstractFactory y
AbstractProduct
Ejemplos de Abstract Factory en Python
[0][1][2]
[0] http://python-3-patterns-idioms-test.readthedocs.org/en/latest/
Factory.html#abstract-factories
[1] http://ginstrom.com/scribbles/2007/10/08/design-patterns-python-style/
[2] http://jpython.blogspot.com.ar/2012/09/python-design-pattern-abstract-
factory.html
Los patrones de diseño de software describen cómo resolver problemas
recurrentes. Si tienes un problema de diseño es muy probable que ya exista un
patrón que lo solucione, no reinventes la rueda.
Me gusta pensar que los patrones de diseño de software son como la caja de
herramientas de los desarrolladores, donde usas la herramienta adecuada para
solucionar un problema determinado.
Cuales son sus características
Como se clasifican
Cual es el mas utilizado y por que
De un ejemplo del mas ultizado
El catálogo de patrones de diseño (refactoring.guru)