SlideShare una empresa de Scribd logo
1 de 13
ABSTRACT FACTORY PATTERN


             Juan Lizaldes
             Gabriel Requelme
Introducción
Abstract Factory es una clase que provee un medio para
producir una familia de objetos. Es un patrón de diseño para
el desarrollo de software. También conocido como Kit o
Toolkit.

                     PROPÓSITO
Provee una interfaz para la creación de objetos relacionados
o dependientes, sin especificar sus clases concretas.
Motivación
• Su objetivo es soportar múltiples estándares.
• Extensible para futuros estándares.
• Separar la construcción de un objeto complejo de su
  representación de modo que el mismo proceso de
  construcción        pueda       crear      diferentes
  representaciones. Los objetos que dependen de un
  algoritmo tendrán que cambiar cuando el algoritmo
  cambia. Por lo tanto los algoritmos que estén
  expuestos a dicho cambio deberían ser separados,
  permitiendo de esta manera reutilizar algoritmos
  para crear diferentes representaciones.
APLICABILIDAD
• Para sistemas independientes de cómo se
  crean, componen y representan sus productos
• Para sistemas que pueden configurarse con
  una de varias familias de productos
• Una familia de objetos producto relacionados
  está diseñada para ser usada conjuntamente y
  es necesario hacer cumplir esa restricción.
• Para ofrecer una librería de clases, mostrando
  sólo sus interfaces y no sus implementaciones.
Estructura
Participantes
o AbstractFactory. Declara una interfaz para operaciones que
  crean objetos producto abstractos.
o ConcreteFactory. Implementa las operaciones para crear
  objetos producto concretos.
o AbstractProduct. Declara una interfaz para un tipo de objeto
  producto.
o Product. Define un objeto producto para que sea creado por la
  fábrica correspondiente. Implementa la interface Product.
o Client. Sólo usa interfaces declaradas por las clases
  AbstractFactory y AbstractProduct.
Colaboraciones
• Normalmente se crea una única instancia de la clase
  ConcreteFactory que crea productos con una
  implementación particular.
• Para crear familias de productos diferentes los
  clientes utilizan una determinada fábrica concreta.
• La clase AbstractFactory pospone la creación de
  productos a sus subclases ConcreteFactory.
Consecuencias
o Aísla las clases concretas. Los clientes manipulan los objetos
  a través de las interfaces o clases abstractas.
o Facilita el intercambio de familias de productos. Al crear una
  familia completa de objetos con una factoría abstracta, es fácil
  cambiar toda la familia de una vez simplemente cambiando la
  factoría concreta.
o Promueve la consistencia entre productos. El uso de la
  factoría abstracta permite forzar a utilizar un conjunto de objetos
  de una misma familia.
o No es fácil soportar nuevos tipos de productos.
  (Desventaja). Si se tiene que extender la interfaz de la Factoría
  abstracta.
Implementación
o Fábricas como Singletons: normalmente se usa una
  sola instancia de fábrica concreta.
o Creación de productos: la fábrica abstracta deja que
  las subclases creen los productos redefiniendo las
  operaciones de creación.
o Definir fábricas extensibles: para evitar la
  dependencia de la interfaz de las fábricas de los
  nuevos productos se puede tener un catálogo de
  prototipos.
Usos Conocidos
• ET++ usa Abstract Factory para archivar portablemente
  sobre diferentes sistemas windows (X Windows y
  SunView)
• La clase base abstracta de WindowsSystem define la
  interfaz para crear objetos que representan recursos del
  sistema windows.
• Las clases Button y MenuItem de Java facilitan la
  utilización de este patrón, declaran los métodos
  getActionCommand y setActionCommand para dar
  nombres a las acciones realizadas por los objetos,
  facilitándose una correspondencia entre ambos.
Patrones relacionados
• Se pueden implementar con Factory
  Method o Prototype.
• Las factorías concretas suelen ser
  Singleton.

        CÓDIGO DE EJEMPLO
http://www.mediafire.com/?8cngd0n88r4wia4
Bibliografía
• Gamma, E., Helm, R., Johnson, R., y Vlissides, J.: Design Patterns:
  Elements of Reusable Object-Oriented Software. Addison-Wesley
  (1995)
• http://www.dosideas.com/wiki/Abstract_Factory
• http://www.programadorphp.org/blog/patrones-de-diseno-elementos-
  reutilizables-para-la-web/
• http://antares.itmorelia.edu.mx/~jcolivar/courses/dp07a/patrones.pdf
• http://gresh-ross.blogspot.es/
• http://www.fdi.ucm.es/profesor/fpeinado/courses/oop/LPS-
  06IntroPatrones-B&N.pdf
• http://www.fdi.ucm.es/profesor/jpavon/poo/2.14PDOO.pdf
• http://msdn.microsoft.com/es-mx/library/bb972258.aspx#EDAA
• http://www.apwebco.com/gofpatterns/creational/AbstractFactory.html

Más contenido relacionado

La actualidad más candente

Bases de Datos Semanticas
Bases de Datos SemanticasBases de Datos Semanticas
Bases de Datos SemanticasErik Guerrero
 
Metodologia del rup
Metodologia del rupMetodologia del rup
Metodologia del ruportizrichard
 
Tipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasTipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasJuanMiguelCustodioMo
 
Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Javier Rubiano Quiroga
 
Modelo de desarrollo rápido de aplicaciones
Modelo de desarrollo rápido de aplicaciones  Modelo de desarrollo rápido de aplicaciones
Modelo de desarrollo rápido de aplicaciones LuisGonzlez362
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Jose R. Hilera
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controladorEmilio Sarabia
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacionZonickX
 
RUP - Fase de Elaboración
RUP - Fase de ElaboraciónRUP - Fase de Elaboración
RUP - Fase de ElaboraciónAdrian González
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)programadorjavablog
 
Modelo Cascada y Espiral
Modelo Cascada y EspiralModelo Cascada y Espiral
Modelo Cascada y Espiraljuanksi28
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoFYaskelly Yedra
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del SoftwareJaneth Jimenez
 

La actualidad más candente (20)

Greenfoot 6
Greenfoot 6Greenfoot 6
Greenfoot 6
 
Bases de Datos Semanticas
Bases de Datos SemanticasBases de Datos Semanticas
Bases de Datos Semanticas
 
Metodologia del rup
Metodologia del rupMetodologia del rup
Metodologia del rup
 
Tipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y DesventajasTipos de Modelos de Datos : Ventajas y Desventajas
Tipos de Modelos de Datos : Ventajas y Desventajas
 
Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1
 
Modelo de desarrollo rápido de aplicaciones
Modelo de desarrollo rápido de aplicaciones  Modelo de desarrollo rápido de aplicaciones
Modelo de desarrollo rápido de aplicaciones
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
Programacion Extrema
Programacion ExtremaProgramacion Extrema
Programacion Extrema
 
Abstract factory
Abstract factoryAbstract factory
Abstract factory
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacion
 
Metodologia oohdm
Metodologia oohdmMetodologia oohdm
Metodologia oohdm
 
RUP - Fase de Elaboración
RUP - Fase de ElaboraciónRUP - Fase de Elaboración
RUP - Fase de Elaboración
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)
 
Modelo Cascada y Espiral
Modelo Cascada y EspiralModelo Cascada y Espiral
Modelo Cascada y Espiral
 
PRESENTACIÓN RUP
PRESENTACIÓN RUPPRESENTACIÓN RUP
PRESENTACIÓN RUP
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
Diagrama de estado
Diagrama de estadoDiagrama de estado
Diagrama de estado
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del Software
 

Similar a Abstract Factory

Abstract factory. presentación
Abstract factory. presentaciónAbstract factory. presentación
Abstract factory. presentaciónavidal020
 
Abstract factory. presentación
Abstract factory. presentaciónAbstract factory. presentación
Abstract factory. presentaciónavidal020
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de softwareIker Canarias
 
Abstract Factory -Design Pattern - GoF
Abstract Factory -Design Pattern - GoFAbstract Factory -Design Pattern - GoF
Abstract Factory -Design Pattern - GoFjlrvpuma
 
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. Jaramillo2008PA2Info3
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo2008PA2Info3
 
Patrones de Diseño de Software
Patrones de Diseño de SoftwarePatrones de Diseño de Software
Patrones de Diseño de SoftwareWilliam A. Molina
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado2008PA2Info3
 
Patrones estructurados
Patrones estructuradosPatrones estructurados
Patrones estructuradosIsmael Armijos
 
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
Msdn Webcast   InyeccióN De Dependencias Con Spring FrameworkMsdn Webcast   InyeccióN De Dependencias Con Spring Framework
Msdn Webcast InyeccióN De Dependencias Con Spring FrameworkGabriel Oliva
 
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).pdfmillonario2
 

Similar a Abstract Factory (20)

Abstract factory. presentación
Abstract factory. presentaciónAbstract factory. presentación
Abstract factory. presentación
 
Abstract factory. presentación
Abstract factory. presentaciónAbstract factory. presentación
Abstract factory. presentación
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Abstract Factory -Design Pattern - GoF
Abstract Factory -Design Pattern - GoFAbstract Factory -Design Pattern - GoF
Abstract Factory -Design Pattern - GoF
 
Patrones
PatronesPatrones
Patrones
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
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
 
Transparencias_Patrones.ppt
Transparencias_Patrones.pptTransparencias_Patrones.ppt
Transparencias_Patrones.ppt
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo
 
Patrones Creacionales
Patrones CreacionalesPatrones Creacionales
Patrones Creacionales
 
Patrones de Diseño de Software
Patrones de Diseño de SoftwarePatrones de Diseño de Software
Patrones de Diseño de Software
 
Patron de diseño
Patron de diseñoPatron de diseño
Patron de diseño
 
Patrones de Diseño
Patrones de DiseñoPatrones de Diseño
Patrones de Diseño
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado
 
INFOGRAFIA.pdf
INFOGRAFIA.pdfINFOGRAFIA.pdf
INFOGRAFIA.pdf
 
Patrones estructurados
Patrones estructuradosPatrones estructurados
Patrones estructurados
 
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
Msdn Webcast   InyeccióN De Dependencias Con Spring FrameworkMsdn Webcast   InyeccióN De Dependencias Con Spring Framework
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
 
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
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 

Último

RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Cuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfCuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfBrandonsanchezdoming
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 

Último (20)

La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Cuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfCuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 

Abstract Factory

  • 1. ABSTRACT FACTORY PATTERN Juan Lizaldes Gabriel Requelme
  • 2. Introducción Abstract Factory es una clase que provee un medio para producir una familia de objetos. Es un patrón de diseño para el desarrollo de software. También conocido como Kit o Toolkit. PROPÓSITO Provee una interfaz para la creación de objetos relacionados o dependientes, sin especificar sus clases concretas.
  • 3. Motivación • Su objetivo es soportar múltiples estándares. • Extensible para futuros estándares. • Separar la construcción de un objeto complejo de su representación de modo que el mismo proceso de construcción pueda crear diferentes representaciones. Los objetos que dependen de un algoritmo tendrán que cambiar cuando el algoritmo cambia. Por lo tanto los algoritmos que estén expuestos a dicho cambio deberían ser separados, permitiendo de esta manera reutilizar algoritmos para crear diferentes representaciones.
  • 4. APLICABILIDAD • Para sistemas independientes de cómo se crean, componen y representan sus productos • Para sistemas que pueden configurarse con una de varias familias de productos • Una familia de objetos producto relacionados está diseñada para ser usada conjuntamente y es necesario hacer cumplir esa restricción. • Para ofrecer una librería de clases, mostrando sólo sus interfaces y no sus implementaciones.
  • 6.
  • 7. Participantes o AbstractFactory. Declara una interfaz para operaciones que crean objetos producto abstractos. o ConcreteFactory. Implementa las operaciones para crear objetos producto concretos. o AbstractProduct. Declara una interfaz para un tipo de objeto producto. o Product. Define un objeto producto para que sea creado por la fábrica correspondiente. Implementa la interface Product. o Client. Sólo usa interfaces declaradas por las clases AbstractFactory y AbstractProduct.
  • 8. Colaboraciones • Normalmente se crea una única instancia de la clase ConcreteFactory que crea productos con una implementación particular. • Para crear familias de productos diferentes los clientes utilizan una determinada fábrica concreta. • La clase AbstractFactory pospone la creación de productos a sus subclases ConcreteFactory.
  • 9. Consecuencias o Aísla las clases concretas. Los clientes manipulan los objetos a través de las interfaces o clases abstractas. o Facilita el intercambio de familias de productos. Al crear una familia completa de objetos con una factoría abstracta, es fácil cambiar toda la familia de una vez simplemente cambiando la factoría concreta. o Promueve la consistencia entre productos. El uso de la factoría abstracta permite forzar a utilizar un conjunto de objetos de una misma familia. o No es fácil soportar nuevos tipos de productos. (Desventaja). Si se tiene que extender la interfaz de la Factoría abstracta.
  • 10. Implementación o Fábricas como Singletons: normalmente se usa una sola instancia de fábrica concreta. o Creación de productos: la fábrica abstracta deja que las subclases creen los productos redefiniendo las operaciones de creación. o Definir fábricas extensibles: para evitar la dependencia de la interfaz de las fábricas de los nuevos productos se puede tener un catálogo de prototipos.
  • 11. Usos Conocidos • ET++ usa Abstract Factory para archivar portablemente sobre diferentes sistemas windows (X Windows y SunView) • La clase base abstracta de WindowsSystem define la interfaz para crear objetos que representan recursos del sistema windows. • Las clases Button y MenuItem de Java facilitan la utilización de este patrón, declaran los métodos getActionCommand y setActionCommand para dar nombres a las acciones realizadas por los objetos, facilitándose una correspondencia entre ambos.
  • 12. Patrones relacionados • Se pueden implementar con Factory Method o Prototype. • Las factorías concretas suelen ser Singleton. CÓDIGO DE EJEMPLO http://www.mediafire.com/?8cngd0n88r4wia4
  • 13. Bibliografía • Gamma, E., Helm, R., Johnson, R., y Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995) • http://www.dosideas.com/wiki/Abstract_Factory • http://www.programadorphp.org/blog/patrones-de-diseno-elementos- reutilizables-para-la-web/ • http://antares.itmorelia.edu.mx/~jcolivar/courses/dp07a/patrones.pdf • http://gresh-ross.blogspot.es/ • http://www.fdi.ucm.es/profesor/fpeinado/courses/oop/LPS- 06IntroPatrones-B&N.pdf • http://www.fdi.ucm.es/profesor/jpavon/poo/2.14PDOO.pdf • http://msdn.microsoft.com/es-mx/library/bb972258.aspx#EDAA • http://www.apwebco.com/gofpatterns/creational/AbstractFactory.html