INGENIERIA DE SOFTWARE GUILLERMO OCHOA GAVIRIA Octubre 2006 Factory Method
INTRODUCCIÓN ► CATEGORIAS DE PATRONES: ► Patrones de fabricación Involucran algún tipo de fabricación de objetos. ► OTROS Patrones Singletón Patrones Builder Patrones Prototype ► RESPONSABILIDAD Creación de instancias de objetos de otras clases. ► CONOCIMIENTO Encapsular en una aplicación la forma como se crean determinados tipos de objetos.
PATRONES DE FABRICACIÓN
FACTORY METHOD ► Clase que implementa uno o más métodos de creación de clase. ► Dichos métodos crean instancias de objetos y pueden ser de otras clases o de la misma clase. ► Puede existir relaciones entre patrones. Ejemplo:
RELACIÓN ENTRE PATONES ► Diagrama basado en UML
FACTORY METHOD vs. CREATION METHODS
Definición del patrón ► Problema: Una clase necesita instanciar otra clase derivada de una tercera clase, pero no se sabe cual. ► Solución: Una clase derivada toma la decisión sobre que clase instanciar y como hacerlo.
Aplicabilidad ► Una clase no puede prever la clase de objetos que debe crear. ► Una clase quiere que sean sus subclases las que definen los objetos que este crea. ► Las clases delegan la responsabilidad en una entre varias clases auxiliares, y determinamos en que subclase de auxiliar se delega.
Beneficios ► Flexibilidad en la creación de objetos por medio del FactoryMethod() o métodos de fabricación. ► Las subclases pueden ser extendidas a medida que evoluciona el sistema. ► Es más complejo su implementación pero permite que el diseño sea más adaptable.
Ejemplo “No Software” ► Moldeado a inyección:
Ejemplo “.NET FRAMEWORK” ► Gestor de manejadores (handlers).
Variaciones de Factory Method ► Creador es abstracto y no provee una implementación para el método de creación que declara. ► Creador es una clase concreta y provee una implementación predeterminada para el método de creación que declara.
Referencias Bibliográficas ► Patrones de Fabricación Fábricas de Objetos.mht de Fabricación Fábricas de Objetos.mht ► [Martin05] Martin, Robert: Principles, Patterns, and Practices: The Factory Pattern. tory.html tory.html tory.html