Patrones De Diseño
Patrones de diseño
MBA Pilar Stronguiló Leturia
Agenda
• Patrones de diseño GoF
• Patrones Creacionales
• Patrones Estructurales
• Patrones de comportamiento
• ¿Cómo seleccionar un patrón?
1
01/04/2011
Patrones de diseño GOF
Patrones de diseño
• 1987: Ward Cunningham y Kent Beck de
Smalltalk escriben "Using Pattern Languages for Object‐Oriented Programs"
• 1990 – 1994: Erich Gamma,
Richard Helm, Ralph Johnson y John
Vlissides se unieron para publicar el libro
"Design Patterns: Elements of Reusable
Object‐Oriented Software" o libro
GoF(Gang Of Four)
2
01/04/2011
Patrones GoF
• Los patrones de diseño GoF (Gang of Four)
son considerados como los fundamentales.
• Estos patrones están categorizados en tres grupos: Creacionales, Estructurales y de
Comportamiento.
Patrones GoF
Patrón
Propósito
Creacionales
Resolver problemas relativos a la
creación de objetos.
Estructurales
Resolver problemas relativos a la
composición de objetos.
De
Resolver problemas relativos a la
comportamiento interacción entre objetos.
3
01/04/2011
Patrones GOF
Creacionales
Patrones GoF CreacionalesCategoría
Abstract factory
(Fábrica abstracta)
Builder
(Constructor virtual)
Factory method
(Método de fabricación)
Prototype
(Prototipo)
Singleton
(Instancia única
Descripción
Crea una instancia de varias familias
de clases.
Separa la construcción de un objeto
de su representación.
Crea una instancia de varias clases
derivadas.
Describe una instancia inicializada completamente que puede ser
copiada o clonada.
Describe una clase con una única
instancia.
4
01/04/2011
PATRÓN: ABSTRACT FACTORY
Patrón: Abstract Factory
• Contexto:
– Debemos crear diferentes objetos,
pertenecientes a diferentes familias.
5
01/04/2011
Patrón: Abstract Factory
• El patrón fábrica abstracta permite trabajar con objetos de distintas familias, proporcionando una
interfaz.
• Se logra que las familias, de objetos relacionados
o dependientes, no se mezclen entre sí, haciendo
transparente el tipo de familia concreta que se
está usando.
Patrón: Abstract Factory
• Este patrón está aconsejado cuando se prevé la
inclusión de nuevas familias de productos, pero
puede resultar contraproducente cuando se
añaden nuevos productos o cambian los existentes, puesto que afectaría a todas las
familias creadas.
6
01/04/2011
Patrón: Abstract Factory
Patrón: Abstract Factory
Participantes
• AbstractFactory (FábricaContinente)
– Declara una interfaz para operaciones que crean objetos
abstractos.
• ConcreteFactory (FábricaAfrica, FábricaAmérica)
– Implementa las operaciones para crear objetos concretos.
•AbstractProduct (Hervíboro, Carnívoro)
– Declara una interfaz para un tipo de objeto.
• Product (León, Lobo)
– Define un objeto que será creado por la correspondiente fábrica
concreta.
– Implementa la interfaz de AbstractProduct.
• Client (MundoAnimal)
– Usa las interfaces declaradas por las clases AbstractFactory y
AbstractProduct.
7
01/04/2011
Patrón: Abstract Factory
•Por ejemplo:
– Las librerías para crear interfaces gráficas
suelen utilizar este patrón y cada familia sería
un sistema operativo distinto.
– Así pues, el usuario declara un Botón, pero de
forma más interna lo que está creando es un
BotónWindows o un BotónMac, por ejemplo.
Patrón: Abstract Factory
8
01/04/2011
PATRÓN: BUILDER
Patrón: Builder
• Contexto:
–Se requiere la creación de una variedad de
objetos complejos (con muchas partes) en un
conjunto de pasos.
9
01/04/2011
Patrón: Builder
• El patrón Constructor, abstrae el proceso de
creación de un objeto complejo,
centralizándolo en un único punto.
• Separa dicha creación de su representación
de manera que el mismo proceso de
construcción cree diferentes
representaciones....
Regístrate para leer el documento completo.