sesion 15 patrones de diseño

21
Patrones de Diseño Lic. César Alcántara Loayza

Upload: julio-pari

Post on 20-Jun-2015

919 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sesion 15 patrones de diseño

Patrones de Diseño

Lic. César Alcántara Loayza

Page 2: Sesion 15 patrones de diseño

2CAL/Fundamentos

Propósito El desarrollo de clases reusables

toma tres veces mas tiempo. El uso de patrones permite hacer

clases reusables y extensibles, documentando soluciones comunes a problemas comunes.

Page 3: Sesion 15 patrones de diseño

3CAL/Fundamentos

El patrón de diseño es una estructura abstracta de una solución común a un problema común.

Nadie tiene un diseño reusable correcto a la primera vez.

Propósito

Page 4: Sesion 15 patrones de diseño

4CAL/Fundamentos

Patrones de diseño son modelos para comunicar, identificar y recordar soluciones a problemas comunes.

Tienen 4 elementos: Nombre del patrón:

Solteron, fabrica, prototipo Problema:

Motivación, intensión, por ejemplo del solterón es prevenir de crear mas de una instancia de una clase.

Definición

Page 5: Sesion 15 patrones de diseño

5CAL/Fundamentos

Solución: Especifica los elementos que constituyen

el patrón tal como, clases, métodos, interfaces, estructuras de datos y algoritmos. También incluye las relaciones, responsabilidades y colaboraciones de los diferentes elementos.

Consecuencias: Resultados.

Definición

Page 6: Sesion 15 patrones de diseño

6CAL/Fundamentos

Muchos de los problemas que se encuentran en la industria se han experimentado por muchos años. Por lo tanto las soluciones Refactorizadas estan disponibles en la comunidad de desarrolladores como un Tipo de Patrón esto es, una solución recurrente que incluye elementos comunes aunque la implementación específica varíe.

Refactoring

Page 7: Sesion 15 patrones de diseño

7CAL/Fundamentos

Antipatterns, by William J. Brown, ... Wiley Computer Pub., 1998.

Analysis Patterns: Reusable Object Models, Martin Fowler (Addison Wesley, 1997)

Design Pattern: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides, Addison Wesley 1994.

Pattern-Oriented Software Architecture: A System of Patterns, Frank Buschmann, John Wiley & sons, 1996.

Patrones - Literatura

Page 8: Sesion 15 patrones de diseño

8CAL/Fundamentos

Un tipo de dato abstracto separa el que del como. (implementación).

Abstract Data Type

Page 9: Sesion 15 patrones de diseño

9CAL/Fundamentos

Creacionales: Crean objetos de la clase correcta,

particularmente útiles cuando se toma ventaja del polimorfismo.

Estructurales: Forman estructuras mas grandes de

partes individuales, generalmente de clases diferentes.

De Comportamiento: Describen interacción entre objetos.

Tipos de Patrones

Page 10: Sesion 15 patrones de diseño

10CAL/Fundamentos

Por su alcance los patrones pueden ser: Patrones de objetos

Especifican relaciones entre objetos. En general el propósito es permitir que las instancias de diferentes clases sean usadas en el mismo lugar en un patrón. Evitan fijar la clase que acomete una tarea dada en tiempo de compilación, en vez de ello la clase actual del objeto puede escogerse en tiempo de ejecución. – Frecuentemente usa composición de objetos para establecer relaciones entre objetos.

Tipos de Patrones

Page 11: Sesion 15 patrones de diseño

11CAL/Fundamentos

Patrones de Clases Especifican relaciones entre clases y sus

subclases. Tienden a usar herencias para establecer relaciones. Fija relaciones en tiempo de compilación.

Tipos de Patrones

Page 12: Sesion 15 patrones de diseño

12CAL/Fundamentos

Intención: El problema que el patrón trabaja.

Motivación: El escenario

Aplicabilidad: Describe las circunstancias bajo las cuales

es apropiado su uso. Estructura:

Muestra normalmente un conjunto de objetos o diagramas de clase.

Diez componentes

Page 13: Sesion 15 patrones de diseño

13CAL/Fundamentos

Participantes: Son las clases y objetos que los

comprenden. Colaboraciones:

Describen como las clases y objetos fuera del patrón interactúan con el patrón.

Consecuencias: Resultados de escoger un patrón-> + ó -

Diez componentes

Page 14: Sesion 15 patrones de diseño

14CAL/Fundamentos

Implementación Conjunto de códigos que usa el

patrón. Detalles y trucos que se necesita hacer para que funciones.

Usos (Know uses): Sistemas donde se halla el patrón.

Ejemplos prácticos. Patrones relacionados.

Diez componentes

Page 15: Sesion 15 patrones de diseño

15CAL/Fundamentos

El patrón solterón es un patrón creacional de objetos. Creacional porque esta relacionado en si mismo con la creación de objetos, mas específicamente con asegurarse que no se cree mas de un objeto. Es un patrón de objetos pues trabaja con los vínculos entre objetos en vez de las relaciones entre clases y sus subclases.

Patrón solteron

Page 16: Sesion 15 patrones de diseño

16CAL/Fundamentos

Intención del solteron: Garantizar que una clase tenga solo

una instancia. Proporcionar acceso a dicha instancia.

Patrón solteron

Page 17: Sesion 15 patrones de diseño

17CAL/Fundamentos

Patrón solteron Motivación:

Es que algún objeto del mundo real no tenga mas de una instancia. Ej. Muchos computadores solo tienen una salida de audio y solo pueden ejecutar un sonido.

Page 18: Sesion 15 patrones de diseño

18CAL/Fundamentos

Patrón solteron Aplicabilidad:

La clase deberá tener exactamente una instancia la cual deberá ser accesible desde un método en la clase.

La clase puede tener subclases y los clientes pueden usar la subclase como una instancia de la superclase sin tener que cambiar de código.

Page 19: Sesion 15 patrones de diseño

19CAL/Fundamentos

Patrón solteron Estructura

Page 20: Sesion 15 patrones de diseño

20CAL/Fundamentos

Patrón solteron Estructura:

Consiste de una única clase. Esta clase toma el rol de singleton en la operación. Sin embargo no es necesario que se llame singleton.

Esta clase tiene un único campo llamado theInstance el que apunta al objeto que es la única instancia.

La aplicabilidad de un patrón describe las circunstancias bajo las cuales el patrón es apropiado; esto es, cuando debiera y cuando no debiera usarse.

Page 21: Sesion 15 patrones de diseño

21CAL/Fundamentos

Patrón solteron La clase singleton tiene dos

métodos, un método estático getInstance() que regresa un apuntador o referencia a la única instancia y un constructor protegido.