PATRONES CREACIONALES
ii
INTEGRANTES:
Zugeiri Moreno Mario
Shanira Condori Flores
PATRONES CREACIONALES
Los patrones de creacin muestran un gua de cmo crear objetos cuando su
creacin requiere tomar decisiones como qu clases instanciar o sobre que objetos
se delegar responsabilidades.
Tienen relacin con la instanciacin de Clases. Pueden ser divididos en class-creation
patterns y object-creational patterns.
Los primeros usan la herencia dentro del proceso de instanciacin. Los otros
usan la delegacin para realizar la tarea.
Creacional de la clase
Usan la herencia como un mecanismo para lograr la
instanciacin de la clase
Creacional del objeto
Mas escalables y dinmicos que los patrones creacionales
de la clase
(Por ejemplo: Singleton)
PROTOTYPE(prototipo):
Especifica los tipos de objetos a crear por medio de una instancia prototpica y crear nuevos
objetos copiando este prototipo.
Crea nuevos objetos, clonndolos a partir de una instancia ya existente
El patrn de diseo Prototype (Prototipo), tiene como finalidad crear nuevos objetos
duplicndolos, clonando una instancia creada previamente.
PROTOTYPE(prototipo):
El patrn Prototype aade un mtodo que permita crear una copia de un objeto. Veamos un
ejemplo de su estructura:
SINGLETON(instancia nica):
Garantiza que una clase solo tenga una instancia y proporciona un punto de
acceso global de ella.
Garantiza la existencia de una nica instancia para una clase y la
creacin de un mecanismo de acceso global a dicha instancia
Cuando emplear Singleton?
Unos ejemplos: Un gestor de impresoras, un pool de conexiones a
una base de datos, un gestor de parmetros de configuracin, etc.
SINGLETON(instancia nica):
Garantiza que una clase solo tenga una instancia y proporciona un punto de
acceso global de ella.
Caractersticas:
Restriccin de acceso al constructor
Hace imposible crear nuevas instancias.
Solo la propia clase puede crear la instancia.
Mecanismo de acceso a la instancia
El acceso se hace a travs de un nico punto bien definido.
Inicialmente puede ser accedido desde cualquier parte del cdigo.
BUILDER(constructor virtual)
Separa la construccin de un objeto complejo de su representacin de forma que
el mismo proceso de construccin pueda crear diferentes representaciones.
El patrn Builder o Constructor se utiliza cuando queremos crear un producto que
tiene diferentes partes. El siguiente ejemplo, basado en este otro, lo ilustra
mejor:
Imaginemos la cocina de una pizzera donde se hacen pizzas. Las pizzas constan de
varias partes (masa, salsa y relleno), y podramos tener 2 cocineros, cada uno
especialista en un tipo de pizza. Esto nos llevara a tener 5 clases:
Cocina
Pizza
Cocinero
Cocinero Hawi
Cocinero Picante
En una situacin como esta el patrn Builder nos puede ayudar. Veamos un ejemplo
de su estructura:
ABSTRACT FACTORY(fabrica abstracta)
Proporciona una interfaz para crear familias e objetos o que dependen entre si,
sin especificar sus clases concretas.
Problema:
Cmo crear familias de clases relacionadas que implementan una interfaz
comn?
Cmo hacer que el cambio de la familia de clases a utilizar sea transparente
para la aplicacin?
Solucin:
Definir una interfaz que contenga mtodos para la creacin de los objetos de
cada clase.
Esta representa la Fbrica abstracta.
Puede ser una interfaz o una clase abstracta.
Definir las fbricas concretas para cada familia de clases.
ABSTRACT FACTORY(fabrica abstracta)
ABSTRACT FACTORY(fabrica abstracta)