Upload
julio-pari
View
919
Download
1
Embed Size (px)
Citation preview
Patrones de Diseño
Lic. César Alcántara Loayza
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.
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
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
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
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
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
8CAL/Fundamentos
Un tipo de dato abstracto separa el que del como. (implementación).
Abstract Data Type
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
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
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
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
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
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
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
16CAL/Fundamentos
Intención del solteron: Garantizar que una clase tenga solo
una instancia. Proporcionar acceso a dicha instancia.
Patrón solteron
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.
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.
19CAL/Fundamentos
Patrón solteron Estructura
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.
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.