patrones de creación

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

Upload: autentia

Post on 07-Jul-2015

162 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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...