Capítulo 1 Conceptos básicos
1.1 ¿Qué es el patrón de diseño 2?
1.2 El papel del modo de diseño 3
1.3 Categoría del modo de captura 4
1.4 Clasificación del modo de diseño 4
1.5 Modo de aprendizaje Etapa 6
Capítulo 2 Diseño responsable de captación de objetos 9
2.1 Experto en información 11
2.2 Creador 13
2.3 Acoplamiento bajo (bajo acoplamiento) 14
2.4 Alta cohesión (alta cohesión) 15
2.5 Controlador 17
2.6 Polimorfismo (polimorfismo) 18
2.7PureFabrication (Ficción pura) 19
2.8 Indirecto (Indirecto) 20
2.9 Variación protegida (Variación protegida) 21 p>
Capítulo 3 GoF-creationdesignpatternsPatrón de diseño creativo 23 p>
3.1 Patrón de método de fábrica 24
3.1.1 Definición 24
3.1.2 Ejemplo de realidad: fábrica de banderas 26
3.1.3C#Ejemplo 1-Sistema de pago electrónico 26
3.1.4C#Ejemplo 2-Sistema de inicio de sesión en la escuela 29
3.1.5 Ejemplo de Java-Fábrica simple para teléfonos móviles 32
3.1. .6 Ventajas y desventajas 34
3.1.7 Escenarios de aplicación 34
3.2FactoryMethodPattern (patrón de método de fábrica) 35
p>3.2.1 Definición 35 p>
3.2.2 Ejemplo real: Arsenal 36
3.2.3 Ejemplo C#: Sistema de documentos múltiples 37
3.2.4 Ejemplo de Java: Fábrica extendida de teléfonos móviles 41
3.2.5 Ventajas y desventajas 44
3.2.6 Escenarios de aplicación
3.3 Patrón de fábrica abstracta (Abstract Factory) 45
3.3.1 Definición 45
3.3.2 Ejemplo de la vida real: arsenal ampliado 48
3.3.3Ejemplo de C#: ecosistema continental 49
3.3.4Ejemplos de Java: productos informáticos 52
3.3.5 Ventajas y desventajas 57
3.3.6 Escenarios de aplicación
3.4 Patrón constructor (Patrón constructor) 58
3.4.1 Definición 58
3.4.2 Ejemplo real: restaurante de comida rápida 60
3.4.3 Ejemplo de C#: taller de fabricación de automóviles 61
3.4.4 Ejemplo de Java: creación de un Casa 65
3.4.5 Ventajas y desventajas 69
3.4.6 Escenarios de aplicación
3.5 Patrón de tipo de protocolo 70
3.5.1 Definición 70
3.5.2 Copiar y pegar en la realidad 71
3.5.3 Ejemplo C#: Gestión del color 72
3.5.4 Ejemplo de Java: Barra de herramientas simple 74
Copia superficial y copia profunda 76
3.5.6 Ventajas y desventajas 82
3.5.7 Escenarios de aplicación
3.6 Modo único 82
3.6.1 Definición
¿Ahora 3.6.2? No sé qué hacer, windowsTaskManager 83.
3.6.3 Ejemplo de C#: Controlador de equilibrio de carga 84
3.6.4 Ejemplo de Java: Registro del sistema 86
3.6.5 Bloqueo de doble verificación ) Check Lock) 89
3.6.6 Ventajas y desventajas 93
Escenarios de aplicación 93
Capítulo 4 Patrón de diseño estructurado GoF 95
4.1 Modo adaptador 96
4.1.1 Definición 96
4.1.2 Ejemplo real: adaptador de corriente de computadora 97
4.1.3 Ejemplo C#: base de datos química 98
4.1.4 Ejemplo de Java: sistema de limpieza 102
4.1.5 Ventajas y desventajas 104
4.1.6 Escenario de aplicación 104
4.2 Modo puente (modo puente) 104
4.2.1 Definición 104
4.2.2 Ejemplos de la vida real: hombres saliendo 106
4.2.3 Ejemplos de C# - Objetos de negocio y objetos de datos 107
4.2.4 Ejemplos de Java-Procesamiento de imágenes de diferentes sistemas 112
4.2.5 Ventajas y desventajas 114
4.2.6 Escenarios de aplicación 115
4.3 Modo compuesto (modo combinado) 115
4.3.1 Definición 115
4.3.2 Aplicación práctica del modo combinado - Resource Manager 117
p>4.3.3Ejemplo de C#: estructura de objeto de árbol gráfico 118
4.3.4Ejemplo de Java: formato de documento 121
4.3.5 Ventajas y desventajas 124
4.3.6 Escenarios de aplicación 125
4.4 Patrones decorativos (patrones decorativos) 125
4.4.1 Definición 125
4.4.2 Patrones decorativos en la realidad - Marco de fotos 126
4.4.3Ejemplo C# - 127 en la biblioteca del proyecto
4.4.4Ejemplo de Java - JButton personalizado 131
4.4.5 Ventajas y desventajas 133
4.4.6 Escenarios de aplicación 134
4.5 FacadePattern (modo de apariencia) 134
4.5.1 Definición 134
4.5.2 En realidad Ejemplo: Servicio al cliente 135
4.5.3C# Ejemplo: Revisión de solicitud de hipoteca 136
4.5.4 Ejemplo de Java: preparación de té 139
4.5.5 Ventajas y desventajas 143
4.5.6 Escenario de aplicación 143
4.6 FlyweightPattern (modo ligero) 144
4.6.1 Definición
4.6. 2 Ejemplo: Guo Si Zhongyou Guo Qi 146
4.6.3C# Editor de documentos de ejemplo 147
4.6.4 Imagen de carga de instancias de Java 151
4.6.5 Ventajas y desventajas 154
4.6.6 Escenarios de aplicación 154
4.7 Modo proxy (modo agente) 154
Definición 154
4.7.2 Varios ejemplos 156
4.7.3C# Ejemplo-Mathematical Agent 158
4.7.4Java Ejemplo-Socket Echo 160
4.7.5 Ventajas y desventajas 165
p>
4.7.6 Escenario de aplicación 165
Capítulo 5 Patrón de diseño conductual GoF 167
5.1 Cadena de responsabilidad (modelo de cadena de responsabilidad) 168
5.1.1 Definición 168
5.1.2 Ejemplo de la vida real: transmisión de inteligencia militar 169
5.1.3Ejemplo de C#: aprobación de clasificación de adquisiciones 170
5.1.4 Ejemplo de Java: sistema de seguridad inteligente para edificios 174
5.1.5 Ventajas y desventajas 178
p>
5.1.6 Escenarios de aplicación 178
5.2 Modo comando (modo comando) 179
5.2.1 Definición 179
5.2.2 En la realidad Ejemplo: Reserva de restaurante 180
5.2.3 Ejemplo de C#: Calculadora simple 181
5.2.4 Ejemplo de Java: Master Switch 185
5.2.5 Ventajas y desventajas 189
5.2.6 Escenarios de aplicación 189
5.3 Modo intérprete 190
5.3.1 Definición 190
5.3.2 Ejemplos reales - Partitura musical 192
5.3.3 Ejemplo de C#: conversión de capital de China 192
5.3.4 Ejemplo de Java: intérprete de programa personalizado 197
5.3.5 Ventajas y desventajas 204
5.3.6 Escenarios de aplicación 205
5.4 Modo iterador (modo iterador) 205
5.4.1 Definición 205
5.4.2 Ejemplo real - Selector de programas de TV 206
5.4.3 Ejemplo C# - Ejemplo transversal 207
5.4.4 Ejemplo Java - dos iteradores 211
5.4.5 Ventajas y desventajas 213
5.4.6 Escenarios de aplicación 214
5.5 Modo intermediario (modo intermedio) 214
Definición 214
5.5.2 Ejemplo: Torre de control de aeropuerto 215
5.5.3C# Ejemplo: Sala de chat 216
5.5.4 Ejemplo de Java: Comunicación multiproceso 220
5.5 .5 Ventajas y desventajas 223
Escenarios de aplicación 223
5.6 Patrón souvenir (patrón souvenir) 223
5.6.1 Definición
5.6. Ejemplo: Ecualizador de audio 226
5.6.3 Ejemplo de C#: Objetivo de ventas 226
5.6.4 Ejemplo de Java: Múltiples operaciones de deshacer 231
5.6. Desventajas 236
Escenarios de aplicación 236
5.7 Modo de observación 236
5.7.1 Definición 236
5.7.2 Ejemplos realistas— —Bin Aparece cargado 238
Ejemplo 5.7.3C# - Tom y Jerry 238
Ejemplo 5.7.4C# - Cambios de stock 241
Ejemplo Java -Sistema de monitoreo 245
5.7.6 Ventajas y desventajas 248
Escenarios de aplicación 248
5.8 Modo de estado 248
5.8.1 Definición
5.8.2 Ejemplo real: buen humor 250
5.8.3 Ejemplo C#: clasificación de cuenta 250
5.8.4 Ejemplo de Java: cambio de coche 258
5.8 .5 Ventajas y Desventajas 261
5.8.6 Escenarios de Aplicación 261
5.9 Modelo Estratégico 261
5.9.1 Definición 261
5.9 .2 Ejemplo realista: estrategia para ir al aeropuerto 263
5.9.3 Ejemplo de C#: método de clasificación 263
5.9.4 Ejemplo de Java: salida multiformato 266
5.9.5 Ventajas y desventajas 272
Escenarios de aplicación 272
5.10 Patrón de método de plantilla (Patrón de método de plantilla) 272
5.1.1 Definición 272
5.10.2 Ejemplo realista: cocina del chef 274
5.10.3C# Ejemplo: plantilla de conexión de base de datos 274
5.10.4 Ejemplo de Java: plantilla de clasificación de burbujas 277 p>
5.10.5 Ventajas y desventajas 280
5.10.6 Escenarios de aplicación 280
5.11 Modo visitante 280<
/p>
5.11.1 Definición 280
5.11.2 Ejemplo real-Facturación tesorero y cajero 282
5.11.3C# ejemplo-Evaluación de personal 283
5.11.4 Ejemplo de Java: ingeniero de mantenimiento revisando el vehículo 287
5.11.5 Ventajas y desventajas 291
5.11.6 Situación de la aplicación 291
Capítulo 6 293 Modo Aplicación integral
6.1 Grabador de extensión de instancia Java 294
6.2 Analizador de almacenamiento de ejemplo C# 298
6.3 Arquitectura del programa de generación de patrones de uso 316
Apéndice 1 Preguntas de autoevaluación 321
Apéndice 2 Respuestas a las preguntas de autoevaluación 331
Documento de referencia 337