Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LU:37738
Introduccin
Este tipo de patrn se usa bastante debido a su utilidad. Su objetivo es devolver una instancia de mltiples tipos de objetos, normalmente todos estos objetos provienen de una misma clase padre mientras que se diferencian entre ellos por algn aspecto de comportamiento. El funcionamiento es muy simple y se puede observar en la siguiente figura (ntese que obviamente puede tambin devolver un nico tipo de
Introduccin
El objeto Factory ser el encargado de decidir segn los parmetros que le pasemos el tipo de objeto que nos devolver. Existen diferentes patrones de fabricacin. En este tema, trataremos Abstract Factory, Factory Method, y Simple Factory
Fbricas
Llamaremos fbrica, factora o factory a una clase que implemente uno o ms mtodos de creacin, que son los mtodos que se encargan de crear instancias de objetos (estas instancias pueden ser de esta misma clase o de otras). Esta clase tiene entre sus responsabilidades la creacin de instancias de objetos, pero puede tener tambin otras responsabilidades adicionales.
Fbricas
Existen diferentes "tipos" de fbricas. A continuacin enumeraremos cada una de ellos, a los efectos de dejar bien en claro sus significados:
Factory Method Define una interfaz para crear objetos pero deja que sean las subclases las que deciden qu clases instanciar.
Abstract Factory Proporciona una interfaz para crear familias de objetos relacionados o que dependen entre s, sin especificar sus clases concretas. Nosotros tan slo tenemos que utilizar las interfaces que se nos proponen para interactuar con el sistema, sin importar el tipo de elemento a instancias, ya que la fbrica lo har por nosotros.
CARACTERISTICAS
Ventajas
Centralizacin de la creacin de objetos Facilita la escalabilidad del sistema El usuario se abstrae de la instancia a crear control de la creacin de objetos.
EJEMPLO: Factory
Como en todas las factorias, tenemos las clases instanciadas (JuegoDelDado y JuegoDeMoneda) que se relacionan con una clase madre (extends) o con un interfaz lgico (implements). En nuestro caso usamos interfaz.
Referencias y Bibliografa
[C204] C2 Wiki: Abstract Factory vs Factory Method. http://c2.com/cgi/wiki?AbstractFactoryVsFactoryMethod [Duell97] Duell, Michael: Non-software examples of software design patterns, Object Magazine, July 1997, pp54.
[Fowler99] Fowler, Martin: Refactoring: Improving the Design of Existing Code, Adisson Wesley, 1999.
[GoF95] Gamma E., Helm, R., Johnson, R., Vlissides J.: Design Patterns: Elements of Reusable Object Oriented Software, Addison Wesley, 1995. [Kerievsky04] Kerievsky, Joshua: Refactoring to Patterns, Addison-Wesley, 2004. [Martin05] Martin, Robert: Principles, Patterns, and Practices: The Factory Pattern. http://today.java.net/pub/a/today/2005/03/09/factory.html [PPR04] C2 WikiWikiWeb: Portland Pattern Repository <en lnea>. http://c2.com/ppr/ [DPE01] Shalloway, Alan; Trott James : Design Patterns Explained : A New perspective on Object Oriented Design, Pearson Education, 2001. [Vlissides98] Vlissides, John: Pattern Hatching: Design Patterns Applied, Addison Wesley, 1998. Len Welicki es Profesor Asociado de Ingeniera Web en el Mster en Ingeniera del Software de la Universidad Pontificia de Salamanca, Madrid, Espaa; donde actualmente est realizando el Doctorado en Ingeniera Informtica, su tesis doctoral trata sobre las Arquitecturas de Software y Paradigmas No Convencionales para Ingeniera Web. Trabaja como Arquitecto de Software. Cuenta con ms de 12 aos de experiencia profesional en diversas reas de la Ingeniera del Software. http://msdn.microsoft.com/es-es/library/bb972258.aspx#EBAA http://siul02.si.ehu.es/~alfredo/iso/06Patrones.pdf http://www.lawebdelprogramador.com/codigo/PHP/1719-Patron_Factory.html http://ocw.unican.es/ensenanzas-tecnicas/ingenieria-del-software-i/materiales-de-clase-1/is1_t06_EjPatrones.pdf ftp://jano.unicauca.edu.co/cursos/Maestria/AplicacionesInternet/docs/MANUAL%20-%20PROGRAMACION%20%20JAVA%20-%20PATRONES.pdf