contenido_978-2-7460-8645-6

15
Introducción a los patrones de diseño 1. Design patterns o patrones de diseño 15 2. Descripción de los patrones de diseño 17 3. Catálogo de patrones de diseño 18 4. Cómo escoger y utilizar un patrón de diseño para resolver un problema 20 5. Organización del catálogo de patrones de diseño 23 Caso de estudio: venta online de vehículos 1. Descripción del sistema 25 2. Cuaderno de carga 25 3. Uso de patrones de diseño 27 Introducción a los patrones de construcción 1. Presentación 29 2. Problemas ligados a la creación de objetos 30 2.1 Problemática 30 2.2 Soluciones propuestas por los patrones de construcción 31 El patrón Abstract Factory Patrones de diseño en Java Los 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java 1/15 © Ediciones ENI www.ediciones-eni.com

Upload: christopher-ovando-chavez

Post on 26-Nov-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Contenido_978-2-7460-8645-6

Introducción a los patrones de diseño

1. Design patterns o patrones de diseño 15

2. Descripción de los patrones de diseño 17

3. Catálogo de patrones de diseño 18

4. Cómo escoger y utilizar un patrón de diseño para resolver un problema 20

5. Organización del catálogo de patrones de diseño 23

Caso de estudio: venta online de vehículos

1. Descripción del sistema 25

2. Cuaderno de carga 25

3. Uso de patrones de diseño 27

Introducción a los patrones de construcción

1. Presentación 29

2. Problemas ligados a la creación de objetos 30

2.1 Problemática 302.2 Soluciones propuestas por los patrones de construcción 31

El patrón Abstract Factory

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

1/15© Ediciones ENIwww.ediciones-eni.com

Page 2: Contenido_978-2-7460-8645-6

1. Descripción 33

2. Ejemplo 33

3. Estructura 36

3.1 Diagrama de clases 363.2 Participantes 373.3 Colaboraciones 37

4. Dominios de uso 37

5. Ejemplo en Java 38

El patrón Builder

1. Descripción 45

2. Ejemplo 45

3. Estructura 47

3.1 Diagrama de clases 473.2 Participantes 473.3 Colaboraciones 48

4. Dominios de uso 49

5. Ejemplo en Java 49

El patrón Factory Method

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

2/15© Ediciones ENIwww.ediciones-eni.com

Page 3: Contenido_978-2-7460-8645-6

1. Descripción 55

2. Ejemplo 55

3. Estructura 57

3.1 Diagrama de clases 573.2 Participantes 583.3 Colaboraciones 58

4. Dominios de uso 58

5. Ejemplo en Java 59

El patrón Prototype

1. Descripción 63

2. Ejemplo 63

3. Estructura 66

3.1 Diagrama de clases 663.2 Participantes 673.3 Colaboración 67

4. Dominios de uso 67

5. Ejemplo en Java 68

El patrón Singleton

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

3/15© Ediciones ENIwww.ediciones-eni.com

Page 4: Contenido_978-2-7460-8645-6

1. Descripción 73

2. Ejemplo 73

3. Estructura 74

3.1 Diagrama de clases 743.2 Participante 753.3 Colaboración 75

4. Dominio de uso 75

5. Ejemplos en Java 75

5.1 Documentación en blanco 755.2 La clase Comercial 77

Introducción a los patrones de estructuración

1. Presentación 81

2. Composición estática y dinámica 82

El patrón Adapter

1. Descripción 85

2. Ejemplo 85

3. Estructura 87

3.1 Diagrama de clases 873.2 Participantes 87

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

4/15© Ediciones ENIwww.ediciones-eni.com

Page 5: Contenido_978-2-7460-8645-6

3.3 Colaboraciones 88

4. Dominios de aplicación 88

5. Ejemplo en Java 89

El patrón Bridge

1. Descripción 93

2. Ejemplo 93

3. Estructura 96

3.1 Diagrama de clases 963.2 Participantes 973.3 Colaboraciones 97

4. Dominios de aplicación 97

5. Ejemplo en Java 98

El patrón Composite

1. Descripción 103

2. Ejemplo 103

3. Estructura 105

3.1 Diagrama de clases 1053.2 Participantes 1063.3 Colaboraciones 107

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

5/15© Ediciones ENIwww.ediciones-eni.com

Page 6: Contenido_978-2-7460-8645-6

4. Dominios de aplicación 108

5. Ejemplo en Java 108

El patrón Decorator

1. Descripción 111

2. Ejemplo 111

3. Estructura 116

3.1 Diagrama de clases 1163.2 Participantes 1173.3 Colaboraciones 117

4. Dominios de aplicación 117

5. Ejemplo en Java 118

El patrón Facade

1. Descripción 121

2. Ejemplo 121

3. Estructura 124

3.1 Diagrama de clases 1243.2 Participantes 1253.3 Colaboraciones 125

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

6/15© Ediciones ENIwww.ediciones-eni.com

Page 7: Contenido_978-2-7460-8645-6

4. Dominios de aplicación 126

5. Ejemplo en Java 127

El patrón Flyweight

1. Descripción 131

2. Ejemplo 131

3. Estructura 134

3.1 Diagrama de clases 1343.2 Participantes 1343.3 Colaboraciones 135

4. Dominio de aplicación 135

5. Ejemplo en Java 135

El patrón Proxy

1. Descripción 139

2. Ejemplo 139

3. Estructura 142

3.1 Diagrama de clases 1423.2 Participantes 1433.3 Colaboraciones 144

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

7/15© Ediciones ENIwww.ediciones-eni.com

Page 8: Contenido_978-2-7460-8645-6

4. Dominios de aplicación 144

5. Ejemplo en Java 144

Introducción a los patrones de comportamiento

1. Presentación 147

2. Distribución por herencia o por delegación 148

El patrón Chain of Responsibility

1. Descripción 151

2. Ejemplo 151

3. Estructura 154

3.1 Diagrama de clases 1543.2 Participantes 1543.3 Colaboraciones 155

4. Dominios de aplicación 155

5. Ejemplo en Java 155

El patrón Command

1. Descripción 159

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

8/15© Ediciones ENIwww.ediciones-eni.com

Page 9: Contenido_978-2-7460-8645-6

2. Ejemplo 159

3. Estructura 163

3.1 Diagrama de clases 1633.2 Participantes 1643.3 Colaboraciones 164

4. Dominios de aplicación 165

5. Ejemplo en Java 166

El patrón Interpreter

1. Descripción 171

2. Ejemplo 171

3. Estructura 174

3.1 Diagrama de clases 1743.2 Participantes 1753.3 Colaboraciones 175

4. Dominios de aplicación 176

5. Ejemplo en Java 176

El patrón Iterator

1. Descripción 183

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

9/15© Ediciones ENIwww.ediciones-eni.com

Page 10: Contenido_978-2-7460-8645-6

2. Ejemplo 183

3. Estructura 186

3.1 Diagrama de clases 1863.2 Participantes 1873.3 Colaboraciones 187

4. Dominios de aplicación 187

5. Ejemplo en Java 188

El patrón Mediator

1. Descripción 193

2. Ejemplo 193

3. Estructura 197

3.1 Diagrama de clases 1973.2 Participantes 1973.3 Colaboraciones 198

4. Dominios de aplicación 198

5. Ejemplo en Java 198

El patrón Memento

1. Descripción 205

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

10/15© Ediciones ENIwww.ediciones-eni.com

Page 11: Contenido_978-2-7460-8645-6

2. Ejemplo 205

3. Estructura 208

3.1 Diagrama de clases 2083.2 Participantes 2083.3 Colaboraciones 209

4. Dominios de aplicación 209

5. Ejemplo en Java 209

El patrón Observer

1. Descripción 213

2. Ejemplo 213

3. Estructura 216

3.1 Diagrama de clases 2163.2 Participantes 2163.3 Colaboraciones 217

4. Dominios de aplicación 217

5. Ejemplo en Java 217

El patrón State

1. Descripción 221

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

11/15© Ediciones ENIwww.ediciones-eni.com

Page 12: Contenido_978-2-7460-8645-6

2. Ejemplo 221

3. Estructura 224

3.1 Diagrama de clases 2243.2 Participantes 2243.3 Colaboraciones 225

4. Dominios de aplicación 225

5. Ejemplo en Java 225

El patrón Strategy

1. Descripción 231

2. Ejemplo 231

3. Estructura 234

3.1 Diagrama de clases 2343.2 Participantes 2343.3 Colaboraciones 235

4. Dominios de aplicación 235

5. Ejemplo en Java 235

El patrón Template Method

1. Descripción 241

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

12/15© Ediciones ENIwww.ediciones-eni.com

Page 13: Contenido_978-2-7460-8645-6

2. Ejemplo 241

3. Estructura 245

3.1 Diagrama de clases 2453.2 Participantes 2453.3 Colaboraciones 246

4. Dominios de aplicación 246

5. Ejemplo en Java 246

El patrón Visitor

1. Descripción 249

2. Ejemplo 249

3. Estructura 253

3.1 Diagrama de clases 2533.2 Participantes 2543.3 Colaboraciones 254

4. Dominios de aplicación 255

5. Ejemplo en Java 255

Composición y variación de patrones

1. Preámbulo 261

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

13/15© Ediciones ENIwww.ediciones-eni.com

Page 14: Contenido_978-2-7460-8645-6

2. El patrón Pluggable Factory 262

2.1 Introducción 2622.2 Estructura 2672.3 Ejemplo en Java 268

3. Reflective Visitor 275

3.1 Discusión 2753.2 Estructura 2793.3 Ejemplo en Java 281

4. El patrón Multicast 288

4.1 Descripción y ejemplo 2884.2 Estructura 2914.3 Ejemplo en Java 2924.4 Discusión: comparación con el patrón Observer 299

El patrón composite MVC

1. Introducción al problema 301

2. El patrón composite MVC 302

3. El framework Vaadin 308

4. Ejemplo en Java 310

4.1 Introducción 3104.2 Arquitectura 3114.3 Estudio del código 312

Los patrones en el diseño de aplicaciones

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

14/15© Ediciones ENIwww.ediciones-eni.com

Page 15: Contenido_978-2-7460-8645-6

1. Modelización y diseño con patrones de diseño 325

2. Otras aportaciones de los patrones de diseño 328

2.1 Una base de datos de conocimiento común 3282.2 Un conjunto recurrente de técnicas de diseño 3282.3 Una herramienta pedagógica del enfoque orientado a objetos 328

Ejercicios

1. Enunciado de los ejercicios 329

1.1 Creación de tarjetas de pago 3291.1.1 Creación en función del cliente 3291.1.2 Creación con ayuda de una fábrica 330

1.2 Autorización de tarjetas de pago 3301.3 Sistema de archivos 3301.4 Navegador gráfico de objetos 3311.5 Estados de la vida profesional de una persona 3321.6 Caché de un diccionario persistente de objetos 332

2. Corrección de los ejercicios 335

2.1 Creación de tarjetas de pago 3352.1.1 Creación en función del cliente 3352.1.2 Creación con ayuda de una fábrica 336

2.2 Autorización de tarjetas de pago 3372.3 Sistema de archivos 3372.4 Navegador gráfico de objetos 3432.5 Estados de la vida profesional de una persona 3442.6 Caché de un diccionario persistente de objetos 346

índice 349

Patrones de diseño en JavaLos 23 modelos de diseño: descripción y solución ilustradas en UML 2 y Java

15/15© Ediciones ENIwww.ediciones-eni.com