1 INGENIERIA DE SOFTWARE GUILLERMO OCHOA GAVIRIA Octubre 2006 Factory Method
2 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.
3 PATRONES DE FABRICACIÓN
4 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:
5 RELACIÓN ENTRE PATONES ► Diagrama basado en UML
6 FACTORY METHOD vs. CREATION METHODS
7 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.
8 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.
9 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.
10 Ejemplo “No Software” ► Moldeado a inyección:
11 Ejemplo “.NET FRAMEWORK” ► Gestor de manejadores (handlers).
12 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.
13 Referencias Bibliográficas ► Patrones de Fabricación Fábricas de Objetos.mht http://msdn.com/Patrones de Fabricación Fábricas de Objetos.mht ► [Martin05] Martin, Robert: Principles, Patterns, and Practices: The Factory Pattern. http://today.java.net/pub/a/today/2005/03/09/fac tory.html http://today.java.net/pub/a/today/2005/03/09/fac tory.html http://today.java.net/pub/a/today/2005/03/09/fac tory.html