13
Patrones de creación Sara Subijana Gracia AUTENTIA.COM Madrid, 29 de Julio de 2014

Patrones de creación

Embed Size (px)

DESCRIPTION

Sara Subijana presenta los patrones de creación dentro de nuestras charlas de patrones de diseño #DesignPatterns

Citation preview

Page 1: Patrones de creación

Patrones de creación

Sara Subijana Gracia

AUTENTIA.COM

Madrid, 29 de Julio de 2014

Page 2: Patrones de creación

● Patrones GoF. Origen

● Patrones de creación. Introducción

● Abstract factory

● Builder

● Factory method

● Object pool

● Prototype

● Singleton

● Preguntas

Índice

Page 3: Patrones de creación

● 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 GoF - Origen

Page 4: Patrones de creació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 - Introducción

Page 5: Patrones de creación

● 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

Page 6: Patrones de creación

Patrones de creación - Abstract Factory

Page 7: Patrones de creación

● 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 - Builder

Page 8: Patrones de creación

● 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

Page 9: Patrones de creación

● 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 - Factory method

Page 10: Patrones de creación

● 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 - Object pool

Page 11: Patrones de creación

● 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 - Prototype

Page 12: Patrones de creación

● 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 - Singleton

Page 13: Patrones de creación

PREGUNTAS

¿?

Patrones de creación - Y para terminar...