SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
Patrones de creación 
AUTENTIA.COM 
Sara Subijana Gracia 
Madrid, 29 de Julio de 2014
Índice 
● Patrones GoF. Origen 
● Patrones de creación. Introducción 
● Abstract factory 
● Builder 
● Factory method 
● Object pool 
● Prototype 
● Singleton 
● Preguntas
Patrones GoF - Origen 
● GoF: Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson, John 
Vlissides). 
● Elaboraron el manual Design Patterns: Elements of reusable object-oriented 
software [1994]. 
● Soluciones generales a problemas habituales en el diseño software 
con patrones de diseño. 
● Clasificados en: 
○ Patrones de creación 
○ Patrones estructurales 
○ Patrones de comportamiento 
○ Patrones de partición 
○ Patrones de concurrencia
Patrones de creación - Introducción 
● Facilitan el proceso de creación del sistema. 
○ Abstracción del proceso de instanciación. 
○ Sistema independiente de las creaciones de objetos. 
○ Encapsulación del comportamiento de las clases. 
○ Ocultan cómo las clases se “comunican” entre sí. 
● Son patrones de creación: 
○ Abstract factory 
○ Builder 
○ Factory method 
○ Object pool 
○ Prototype 
○ Singleton 
● Algunos patrones son complementarios: Builder, Prototype.
Patrones de creación - Abstract Factory 
● Proporciona una interfaz para crear familias de objetos sin especificar 
las clases a las que pertenecen. 
● Uso de una clase factoría que es la que crea los objetos de las distintas 
familias. 
● El cliente instancia la clase factoría siendo transparente para él el tipo 
del objeto creado. 
● La factoría es la que conoce el tipo de objeto creado.
Patrones de creación - Abstract Factory
Patrones de creación - Builder 
● Separa la construcción del objeto de su representación. 
● Implementación del proceso de construcción consigue crear varias 
representaciones de objetos. 
● Elementos que intervienen 
○ Builder: interfaz abstracta que crea productos. 
○ Builder concreto: implementación concreta del builder que crea 
productos. 
○ Director: utiliza la clase builder para crear los objetos.
Patrones de creación - Factory method 
● Define una interfaz para la creación de objetos. 
● Permite que sean las subclases las que determinen la clase a instanciar. 
● Una superclase puede delegar en sus hijas la creación de objetos. 
● Elementos: 
○ Creator: define el método para la creación de objetos. 
○ Concrete creator: redefine el método de creación para devolver 
instancias de un producto concreto. 
○ Producto: resultado del método de creación.
Patrones de creación - Factory method 
● Ventajas: 
○ Asignar nombres descriptivos a los métodos de construcción. 
○ Encapsular el proceso de construcción. 
● Uso muy popular: método constructor estático que devuelve instancias 
de producto.
Patrones de creación - Object pool 
● A veces el coste de instanciar clases es alto y/o el rendimiento de la 
aplicación puede verse afectado. 
● Object pool: objetos que pueden reutilizarse bajo demanda en vez de 
crear nuevas instancias. 
● Funcionamiento: 
○ Demanda de un nuevo objeto al pool. 
○ Una vez que el objeto ha sido utilizado, se devuelve. 
○ En el caso de que no haya instancias libres, el pool crea nuevas. 
○ Debe implementarse un mecanismo de liberación de instancias.
Patrones de creación - Prototype 
● Crea nuevos objetos clonando una instancia creada previamente. 
● A la instancia creada se le llama prototipo. 
● Propone crear los objetos en el momento y contexto adecuado (p.e 
editor gráfico). 
● Elementos: 
○ Cliente: encargado de solicitar la creación de nuevos objetos. 
○ Prototipo: declaración de una interfaz para clonarse a la que accede 
el cliente. 
○ Prototipo concreto: implementa el método de clonación.
Patrones de creación - Singleton 
● Una sola instancia de clase proporciona un punto global de acceso a 
ella. 
● Instancia encargada de la creación, inicialización y acceso. 
● La instancia se define como estática y privada. 
● Debe definirse un método de acceso a dicha instancia. 
● Muy utilizado cuando… 
○ La clase debe controlar el acceso a un recurso físico único. 
○ Existen datos que deben estar disponibles para todos los demás 
objetos de la aplicación. 
● Cuidado con los problemas de concurrencia al crear la instancia
Patrones de creación - Y para terminar... 
PREGUNTAS 
¿?

Weitere ähnliche Inhalte

Was ist angesagt?

MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de softwareGuillermo Lemus
 
Cuadro comparativo
Cuadro comparativo Cuadro comparativo
Cuadro comparativo Seba Briones
 
Metodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesMetodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesJaqueline Luna
 
Modelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareModelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareWilliam Matamoros
 
Modelos y capas de la ingenieria de software
Modelos y capas  de la ingenieria de softwareModelos y capas  de la ingenieria de software
Modelos y capas de la ingenieria de softwarejhonatanalex
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosJuan Carlos Olivares Rojas
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativojorge paez
 
Metodología orientada a objetos
Metodología orientada a objetosMetodología orientada a objetos
Metodología orientada a objetosalcrrsc
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudEliud Cortes
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de usoSaul Mamani
 
Gestión del riesgo de software
Gestión del riesgo de software Gestión del riesgo de software
Gestión del riesgo de software jose_macias
 

Was ist angesagt? (20)

Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Ingenieria requerimientos
Ingenieria requerimientosIngenieria requerimientos
Ingenieria requerimientos
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 
Cuadro comparativo
Cuadro comparativo Cuadro comparativo
Cuadro comparativo
 
Metodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesMetodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móviles
 
Modelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareModelos o Ciclos de vida de software
Modelos o Ciclos de vida de software
 
Modelos y capas de la ingenieria de software
Modelos y capas  de la ingenieria de softwareModelos y capas  de la ingenieria de software
Modelos y capas de la ingenieria de software
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Metodología orientada a objetos
Metodología orientada a objetosMetodología orientada a objetos
Metodología orientada a objetos
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliud
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
Gestión del riesgo de software
Gestión del riesgo de software Gestión del riesgo de software
Gestión del riesgo de software
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 

Andere mochten auch

Andere mochten auch (17)

Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Lenguaje De Programación
Lenguaje De ProgramaciónLenguaje De Programación
Lenguaje De Programación
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetos
 
Herramientas IDE - CASE
Herramientas IDE - CASEHerramientas IDE - CASE
Herramientas IDE - CASE
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Modelado, Ingenieria de Software
Modelado, Ingenieria de SoftwareModelado, Ingenieria de Software
Modelado, Ingenieria de Software
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Diagramas De Interaccion
Diagramas De InteraccionDiagramas De Interaccion
Diagramas De Interaccion
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diapositivas ciencia, tecnologia y sociedad
Diapositivas ciencia, tecnologia y sociedadDiapositivas ciencia, tecnologia y sociedad
Diapositivas ciencia, tecnologia y sociedad
 
Innovacion Tecnologica
Innovacion TecnologicaInnovacion Tecnologica
Innovacion Tecnologica
 
Proyecto de grado
Proyecto de gradoProyecto de grado
Proyecto de grado
 
LA NATURALEZA DE LA ACTIVIDAD CIENTÍFICA
LA NATURALEZA DE LA ACTIVIDAD CIENTÍFICALA NATURALEZA DE LA ACTIVIDAD CIENTÍFICA
LA NATURALEZA DE LA ACTIVIDAD CIENTÍFICA
 
La tecnología
La tecnologíaLa tecnología
La tecnología
 
Factibilidad Tecnica, Operativa y Economica
Factibilidad Tecnica, Operativa y EconomicaFactibilidad Tecnica, Operativa y Economica
Factibilidad Tecnica, Operativa y Economica
 
Análisis Estadístico
Análisis EstadísticoAnálisis Estadístico
Análisis Estadístico
 

Ähnlich wie Patrones de creación

Ähnlich wie Patrones de creación (20)

Buider Patron de Diseño
Buider Patron de DiseñoBuider Patron de Diseño
Buider Patron de Diseño
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
06 patrones
06 patrones06 patrones
06 patrones
 
Operadores poo
Operadores pooOperadores poo
Operadores poo
 
Análisis y Diseño OO 2
Análisis y Diseño OO 2Análisis y Diseño OO 2
Análisis y Diseño OO 2
 
Transparencias_Patrones.ppt
Transparencias_Patrones.pptTransparencias_Patrones.ppt
Transparencias_Patrones.ppt
 
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
 
6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt
 
Método fabrica (Method Factory)
Método fabrica (Method Factory)Método fabrica (Method Factory)
Método fabrica (Method Factory)
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
 
type object
type objecttype object
type object
 
Prototype (patron de disenio)
Prototype (patron de disenio)Prototype (patron de disenio)
Prototype (patron de disenio)
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
 
Patrones Con C#
Patrones Con C#Patrones Con C#
Patrones Con C#
 
Taller patrones de diseño
Taller patrones de  diseñoTaller patrones de  diseño
Taller patrones de diseño
 
Patron creacional singleton
Patron creacional singletonPatron creacional singleton
Patron creacional singleton
 
6 3-templates y patrones
6 3-templates y patrones6 3-templates y patrones
6 3-templates y patrones
 
Introducción a los patrones de diseño
Introducción a los patrones de diseñoIntroducción a los patrones de diseño
Introducción a los patrones de diseño
 
Patron Singleton
Patron SingletonPatron Singleton
Patron Singleton
 

Mehr von Autentia

Nativescript
NativescriptNativescript
NativescriptAutentia
 
Patrones de diseño: Polimorfismo
Patrones de diseño: PolimorfismoPatrones de diseño: Polimorfismo
Patrones de diseño: PolimorfismoAutentia
 
Presentación open closed principle
Presentación open closed principlePresentación open closed principle
Presentación open closed principleAutentia
 
Patrón Façade
Patrón FaçadePatrón Façade
Patrón FaçadeAutentia
 
Patrón Decorator
Patrón DecoratorPatrón Decorator
Patrón DecoratorAutentia
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructuralesAutentia
 
Patrón Observer
Patrón ObserverPatrón Observer
Patrón ObserverAutentia
 
Factory method
Factory methodFactory method
Factory methodAutentia
 
Design Patterns / Patrones de Diseño
Design Patterns / Patrones de DiseñoDesign Patterns / Patrones de Diseño
Design Patterns / Patrones de DiseñoAutentia
 
Measuring code quality:WTF/min by @dgomezg
Measuring code quality:WTF/min by @dgomezgMeasuring code quality:WTF/min by @dgomezg
Measuring code quality:WTF/min by @dgomezgAutentia
 

Mehr von Autentia (11)

Nativescript
NativescriptNativescript
Nativescript
 
Patrones de diseño: Polimorfismo
Patrones de diseño: PolimorfismoPatrones de diseño: Polimorfismo
Patrones de diseño: Polimorfismo
 
Presentación open closed principle
Presentación open closed principlePresentación open closed principle
Presentación open closed principle
 
Patrón Façade
Patrón FaçadePatrón Façade
Patrón Façade
 
Patrón Decorator
Patrón DecoratorPatrón Decorator
Patrón Decorator
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Patrón Observer
Patrón ObserverPatrón Observer
Patrón Observer
 
Singleton
SingletonSingleton
Singleton
 
Factory method
Factory methodFactory method
Factory method
 
Design Patterns / Patrones de Diseño
Design Patterns / Patrones de DiseñoDesign Patterns / Patrones de Diseño
Design Patterns / Patrones de Diseño
 
Measuring code quality:WTF/min by @dgomezg
Measuring code quality:WTF/min by @dgomezgMeasuring code quality:WTF/min by @dgomezg
Measuring code quality:WTF/min by @dgomezg
 

Patrones de creación

  • 1. Patrones de creación AUTENTIA.COM Sara Subijana Gracia Madrid, 29 de Julio de 2014
  • 2. Índice ● Patrones GoF. Origen ● Patrones de creación. Introducción ● Abstract factory ● Builder ● Factory method ● Object pool ● Prototype ● Singleton ● Preguntas
  • 3. Patrones GoF - Origen ● GoF: Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides). ● Elaboraron el manual Design Patterns: Elements of reusable object-oriented software [1994]. ● Soluciones generales a problemas habituales en el diseño software con patrones de diseño. ● Clasificados en: ○ Patrones de creación ○ Patrones estructurales ○ Patrones de comportamiento ○ Patrones de partición ○ Patrones de concurrencia
  • 4. Patrones de creación - Introducción ● Facilitan el proceso de creación del sistema. ○ Abstracción del proceso de instanciación. ○ Sistema independiente de las creaciones de objetos. ○ Encapsulación del comportamiento de las clases. ○ Ocultan cómo las clases se “comunican” entre sí. ● Son patrones de creación: ○ Abstract factory ○ Builder ○ Factory method ○ Object pool ○ Prototype ○ Singleton ● Algunos patrones son complementarios: Builder, Prototype.
  • 5. Patrones de creación - Abstract Factory ● Proporciona una interfaz para crear familias de objetos sin especificar las clases a las que pertenecen. ● Uso de una clase factoría que es la que crea los objetos de las distintas familias. ● El cliente instancia la clase factoría siendo transparente para él el tipo del objeto creado. ● La factoría es la que conoce el tipo de objeto creado.
  • 6. Patrones de creación - Abstract Factory
  • 7. Patrones de creación - Builder ● Separa la construcción del objeto de su representación. ● Implementación del proceso de construcción consigue crear varias representaciones de objetos. ● Elementos que intervienen ○ Builder: interfaz abstracta que crea productos. ○ Builder concreto: implementación concreta del builder que crea productos. ○ Director: utiliza la clase builder para crear los objetos.
  • 8. Patrones de creación - Factory method ● Define una interfaz para la creación de objetos. ● Permite que sean las subclases las que determinen la clase a instanciar. ● Una superclase puede delegar en sus hijas la creación de objetos. ● Elementos: ○ Creator: define el método para la creación de objetos. ○ Concrete creator: redefine el método de creación para devolver instancias de un producto concreto. ○ Producto: resultado del método de creación.
  • 9. Patrones de creación - Factory method ● Ventajas: ○ Asignar nombres descriptivos a los métodos de construcción. ○ Encapsular el proceso de construcción. ● Uso muy popular: método constructor estático que devuelve instancias de producto.
  • 10. Patrones de creación - Object pool ● A veces el coste de instanciar clases es alto y/o el rendimiento de la aplicación puede verse afectado. ● Object pool: objetos que pueden reutilizarse bajo demanda en vez de crear nuevas instancias. ● Funcionamiento: ○ Demanda de un nuevo objeto al pool. ○ Una vez que el objeto ha sido utilizado, se devuelve. ○ En el caso de que no haya instancias libres, el pool crea nuevas. ○ Debe implementarse un mecanismo de liberación de instancias.
  • 11. Patrones de creación - Prototype ● Crea nuevos objetos clonando una instancia creada previamente. ● A la instancia creada se le llama prototipo. ● Propone crear los objetos en el momento y contexto adecuado (p.e editor gráfico). ● Elementos: ○ Cliente: encargado de solicitar la creación de nuevos objetos. ○ Prototipo: declaración de una interfaz para clonarse a la que accede el cliente. ○ Prototipo concreto: implementa el método de clonación.
  • 12. Patrones de creación - Singleton ● Una sola instancia de clase proporciona un punto global de acceso a ella. ● Instancia encargada de la creación, inicialización y acceso. ● La instancia se define como estática y privada. ● Debe definirse un método de acceso a dicha instancia. ● Muy utilizado cuando… ○ La clase debe controlar el acceso a un recurso físico único. ○ Existen datos que deben estar disponibles para todos los demás objetos de la aplicación. ● Cuidado con los problemas de concurrencia al crear la instancia
  • 13. Patrones de creación - Y para terminar... PREGUNTAS ¿?