SlideShare a Scribd company logo
1 of 4
Download to read offline
Patrones de Diseño – Abstract
                   Factory
    Provee una interface para la creación de familias de objetos relacionados o dependientes
●



sin especificar sus clases concretas.
    También conocido como Kit.
●




Se usa cuando :

Un sistema debería ser independiente de cómo sus objetos producto son creados,
●



compuestos y representados
Un sistema debería ser configurado con una de múltiples familias de objetos producto.
●



Un familia de objetos producto relacionados están diseñados para trabajar juntos y se
●



necesita cumplir con esa restricción.
Se quiere proveer de una librería de clases de objetos producto y se requiere revelar
●



sólo sus interfaces y no sus implementaciones.

Un ejemplo de uso relativamente común de da en la creación de familias de
interfaces gráficas que soporten distintos tipos de presentación(look-and-feel).
Patrones de Diseño – Abstract
               Factory
Estructura :
Patrones de Diseño – Abstract
                  Factory
    Participantes :
AbstractFactory : Declara una interfaz para operaciones que crean objetos producto
●



abstractos.
ConcreteFactory : Implementa las operaciones que crean objetos producto concretos.
●



AbstractProduct : Declara una interface para un tipo de objeto producto.
●



ConcreteProduct, Product : Define un objeto producto que será creado por el
●



correspondiente ConcreteFactory.
Client : Usa sólo interfaces declaradas por AbstractFactory y AbstractProduct.
●




    Colaboraciones :
Normalmente una única instancia de ConcreteFactory es creada en tiempo de ejecución.
●



Para crear diferentes objetos producto, los clientes deben usar diferentes
●



ConcreteFactory.
AbstractFactory delega la creación de objetos producto a sus subclases
●



ConcreteFactory.
ConcreteFactory crea objetos producto teniendo una implementación particular.
●
Patrones de Diseño – Abstract
                Factory
Consecuencias :
 Aisla las clases concretas.
 ●



 Ayuda a controlar las clases de objetos que una aplicación crea.
 ●



 Encapsula la responsabilidad y el proceso de creación de los objetos producto, aislando
 ●



 a los clientes de la implementación de clases.
 El cliente manipula las instancias a través de sus interfaces abstractas.
 ●



 Hace fácil el intercambio de familias de objetos producto sin mezclarse, permitiendo
 ●



 configurar un sistema con una familia de objetos producto de entre varias.
 Promueve la consistencia entre objetos producto.
 ●



 Soporte para nuevos tipos de objetos producto es difícil, dado que la interface
 ●



 AbstractFactory arregla el bloque de productos que pueden ser creados.
 Para soportar nuevos tipos de objetos producto seria necesario hacer cambios o
 ●



 extender AbstractFactory y sus subclases.
 Una posible solución consistiría en pasar un parámetro al método de creación de
 ●



 objetos producto, sin embargo se considera una técnica no segura.

More Related Content

What's hot (6)

Abstract Factory
Abstract FactoryAbstract Factory
Abstract Factory
 
Patrones de Diseño: Prototype
Patrones de Diseño: PrototypePatrones de Diseño: Prototype
Patrones de Diseño: Prototype
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Abstract factory
Abstract factoryAbstract factory
Abstract factory
 
Introduccion a j_query
Introduccion a j_queryIntroduccion a j_query
Introduccion a j_query
 
Patrones de diseño Proxy
Patrones  de diseño ProxyPatrones  de diseño Proxy
Patrones de diseño Proxy
 

Similar to Abstract Factory -Design Pattern - GoF

Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo
2008PA2Info3
 
Patrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. JaramilloPatrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. Jaramillo
2008PA2Info3
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
Juanes Alzt
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
kaolong
 

Similar to Abstract Factory -Design Pattern - GoF (20)

Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
Builder - Design Pattern - GoF
Builder - Design Pattern - GoFBuilder - Design Pattern - GoF
Builder - Design Pattern - GoF
 
Facade - Design Pattern - GoF
Facade - Design Pattern - GoFFacade - Design Pattern - GoF
Facade - Design Pattern - GoF
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Patrones
PatronesPatrones
Patrones
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Patrones de Diseño. (Design Patterns).pdf
Patrones de Diseño. (Design Patterns).pdfPatrones de Diseño. (Design Patterns).pdf
Patrones de Diseño. (Design Patterns).pdf
 
Patron Fabrica Abstracta
Patron Fabrica AbstractaPatron Fabrica Abstracta
Patron Fabrica Abstracta
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo
 
Patrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. JaramilloPatrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. Jaramillo
 
Operadores poo
Operadores pooOperadores poo
Operadores poo
 
Taller patrones de diseño
Taller patrones de  diseñoTaller patrones de  diseño
Taller patrones de diseño
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Expo 2 parametros
Expo 2   parametrosExpo 2   parametros
Expo 2 parametros
 
Patrones de Diseño de Software
Patrones de Diseño de SoftwarePatrones de Diseño de Software
Patrones de Diseño de Software
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
PATRONES DE DISEÑO WEB.pptx
PATRONES DE DISEÑO WEB.pptxPATRONES DE DISEÑO WEB.pptx
PATRONES DE DISEÑO WEB.pptx
 

Recently uploaded

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
MiNeyi1
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 

Recently uploaded (20)

PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 

Abstract Factory -Design Pattern - GoF

  • 1. Patrones de Diseño – Abstract Factory Provee una interface para la creación de familias de objetos relacionados o dependientes ● sin especificar sus clases concretas. También conocido como Kit. ● Se usa cuando : Un sistema debería ser independiente de cómo sus objetos producto son creados, ● compuestos y representados Un sistema debería ser configurado con una de múltiples familias de objetos producto. ● Un familia de objetos producto relacionados están diseñados para trabajar juntos y se ● necesita cumplir con esa restricción. Se quiere proveer de una librería de clases de objetos producto y se requiere revelar ● sólo sus interfaces y no sus implementaciones. Un ejemplo de uso relativamente común de da en la creación de familias de interfaces gráficas que soporten distintos tipos de presentación(look-and-feel).
  • 2. Patrones de Diseño – Abstract Factory Estructura :
  • 3. Patrones de Diseño – Abstract Factory Participantes : AbstractFactory : Declara una interfaz para operaciones que crean objetos producto ● abstractos. ConcreteFactory : Implementa las operaciones que crean objetos producto concretos. ● AbstractProduct : Declara una interface para un tipo de objeto producto. ● ConcreteProduct, Product : Define un objeto producto que será creado por el ● correspondiente ConcreteFactory. Client : Usa sólo interfaces declaradas por AbstractFactory y AbstractProduct. ● Colaboraciones : Normalmente una única instancia de ConcreteFactory es creada en tiempo de ejecución. ● Para crear diferentes objetos producto, los clientes deben usar diferentes ● ConcreteFactory. AbstractFactory delega la creación de objetos producto a sus subclases ● ConcreteFactory. ConcreteFactory crea objetos producto teniendo una implementación particular. ●
  • 4. Patrones de Diseño – Abstract Factory Consecuencias : Aisla las clases concretas. ● Ayuda a controlar las clases de objetos que una aplicación crea. ● Encapsula la responsabilidad y el proceso de creación de los objetos producto, aislando ● a los clientes de la implementación de clases. El cliente manipula las instancias a través de sus interfaces abstractas. ● Hace fácil el intercambio de familias de objetos producto sin mezclarse, permitiendo ● configurar un sistema con una familia de objetos producto de entre varias. Promueve la consistencia entre objetos producto. ● Soporte para nuevos tipos de objetos producto es difícil, dado que la interface ● AbstractFactory arregla el bloque de productos que pueden ser creados. Para soportar nuevos tipos de objetos producto seria necesario hacer cambios o ● extender AbstractFactory y sus subclases. Una posible solución consistiría en pasar un parámetro al método de creación de ● objetos producto, sin embargo se considera una técnica no segura.