3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA...
-
Upload
lola-galvez -
Category
Documents
-
view
217 -
download
0
Transcript of 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA...
![Page 1: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/1.jpg)
3.- Introducción a 3.- Introducción a Patrones de DiseñoPatrones de Diseño
Justo N. Hidalgo SanzJusto N. Hidalgo Sanz
DEPARTAMENTO DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA INFORMÁTICAINFORMÁTICA
![Page 2: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/2.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
Índice
Qué es un patrón de diseño Tipos de patrones
Creacionales Estructurales De Comportamiento
![Page 3: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/3.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
Introducción
Las estructuras pueden ser diferentes, pero resolver un mismo problema
Christopher Alexander: un patrón es una solución a un problema en un contexto.
Describe un tipo de problema que ocurre recurrentemente, para después describir una solución genérica para que pueda utilizarse en cualquier “instancia” de ese problema.
![Page 4: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/4.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
The Gang of Four
El libro “Design Patterns. Elements of Reusable Object-Oriented Software” de Gamma, Helm, Johnson and Vlissides ha sido el de mayor influencia en el mundo de los patrones. Aplicó la idea de Patrones al Software, Describió una estructura de catalogación, Catalogó 23 patrones, Postuló estrategias orientadas a objetos de utilización
de estos patrones. No es el único:
POSA (Pattern-Oriented Software Architecture), vol. 1 y 2.
UML y Patrones. C. Larman ...
![Page 5: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/5.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
Uso
Para qué sirven los patrones: Reutilización de soluciones Establecimiento de una terminología común
¡Al principio es una locura! Ayuda al trabajo en equipo
Perspectiva a alto nivel de los problemas y de sus soluciones
No nos metemos en detalles demasiado pronto Establecimiento de metodología común
Diseño a partir de interfaces Dar más importancia a la composición sobre la
herencia Favorecer la encapsulación de comportamientos
![Page 6: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/6.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
Patterns are
Everywhere!
Tipos de Patrones (I)
![Page 7: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/7.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
Tipos de Patrones (y II)
GoF los divide en tres tipos: Creacionales (creational)
Patrones que se refieren al proceso de creación de objetos
Estructurales (structural) Patrones que tratan con la composición de clases u
objetos De Comportamiento (behavioural)
Caracterización de las maneras en que las clases/objetos interactúan entre sí y se distribuyen las responsabilidades.
![Page 8: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/8.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
Design Pattern’s Name Jurisdiction Characterization
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Observer
Estructura de los Patrones (I)
![Page 9: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/9.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
Estructura de los Patrones (II)
Nombre del patrón Clasificación Intención: párrafo que responde a:
¿qué hace el patrón de diseño? ¿cuál es su intención? ¿qué tema o problema de diseño trata?
Alias (also known as) Otros nombres para el patrón, si existen.
Motivación Un escenario que ilustre el problema y cómo el
patrón lo resuelve.
![Page 10: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/10.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
Estructura de los Patrones (III)
Aplicabilidad Situaciones donde el patrón es aplicable Forma de reconocer estas situaciones
Estructura Representación gráfica de las clases que forman el
patrón. Generalmente en UML. Participantes
Clases, objetos, y sus responsabilidades Colaboraciones
Cómo colaboran los participantes
![Page 11: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/11.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
Estructura de los Patrones (y IV)
Consecuencias Cómo cumple el patrón sus objetivos Qué aspecto de la estructura del sistema se puede
variar independientemente Qué posibles problemas o compromisos tiene el
patrón Implementación
Trucos, problemas, técnicas, … a utilizar cuando se implementa el patrón
Código de ejemplo Usos conocidos
Ejemplos en sistemas reales. Patrones relacionados
![Page 12: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/12.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
Estructura del curso
Estudiaremos algunos de los patrones del GOF: Introducción teórica Diseño de la solución Ejemplos prácticos: diseño e implementación (Java /
C#) Otros serán de estudio independiente.
Se espera el mismo nivel de maestría que con los explicados en clase.
Ejemplo aglutinador. La descripción del problema se encontrará en la web
una semana antes: obligatorio haberlo leído antes de llegar a clase.
![Page 13: 3.- Introducción a Patrones de Diseño Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.](https://reader036.fdocuments.co/reader036/viewer/2022082506/5665b4761a28abb57c91a7d6/html5/thumbnails/13.jpg)
Escuela Politécnica Superior de IngenieríaDepartamento de Ingeniería Informática (DII)
Bibliografía
Design Patterns. Elements of reusable object-oriented software. Gamma et al. Ed. Addison-Wesley
The Unified Software Development Process. I. Jacobson, G. Booch, J. Rumbaugh. Ed. Addison-Wesley. ISBN: 0-201-57169-2
CSCE966: Software Architectures & Frameworks - Department of Computer Science & Engineering - Universidad de Nebraska
Curso de Netobjectives.com