Vous êtes sur la page 1sur 19

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

Introducción a los patrones de diseño

1. Design patterns o patrones de diseño

 

17

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

19

3. Catálogo de patrones de diseño

20

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

22

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

24

Caso de estudio: venta online de vehículos

1. Descripción del sistema

27

2. Cuaderno de carga

28

3. Uso de patrones de diseño

29

Introducción a los patrones de construcción

1.

Presentación

 

33

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

2. Problemas ligados a la creación de objetos

 

34

 

2.1 Problemática

 

34

 

2.2 Soluciones propuestas por los patrones de construcción

 

35

El patrón Abstract Factory

1. Descripción

37

 

2. Ejemplo

 

37

3. Estructura

40

 

3.1 Diagrama de clases

 

40

 

3.2 Participantes

 

41

 

3.3 Colaboraciones

 

41

4. Dominios de uso

41

5. Ejemplo en C#

42

El patrón Builder

1.

Descripción

 

49

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

2. Ejemplo

 

49

3. Estructura

 

52

3.1 Diagrama de clases

 

52

3.2 Participantes

 

53

3.3 Colaboraciones

 

53

4. Dominios de uso

 

54

5. Ejemplo en C#

 

55

El patrón Factory Method

1. Descripción

 

61

2. Ejemplo

 

61

3. Estructura

 

63

3.1 Diagrama de clases

 

63

3.2 Participantes

 

64

3.3 Colaboraciones

 

64

4. Dominios de uso

 

64

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

5. Ejemplo en C#

 

65

El patrón Prototype

1. Descripción

 

69

2. Ejemplo

 

69

3. Estructura

 

72

3.1 Diagrama de clases

 

72

3.2 Participantes

 

73

3.3 Colaboración

 

73

4. Dominios de uso

 

73

5. Ejemplo en C#

 

74

El patrón Singleton

1. Descripción

 

79

2. Ejemplo

 

79

3. Estructura

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

 

81

3.1 Diagrama de clases

 

81

3.2 Participante

 

81

3.3 Colaboración

 

81

4. Dominio de uso

 

82

5. Ejemplos en C#

 

82

5.1 Documentación en blanco

 

82

5.2 La clase Comercial

 

83

Introducción a los patrones de estructuración

1. Presentación

 

87

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

 

88

El patrón Adapter

1. Descripción

 

91

2. Ejemplo

 

92

3. Estructura

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

 

94

3.1 Diagrama de clases

 

94

3.2 Participantes

 

95

3.3 Colaboraciones

 

95

4. Dominios de aplicación

 

96

5. Ejemplo en C#

 

96

El patrón Bridge

1. Descripción

 

101

2. Ejemplo

 

101

3. Estructura

 

105

3.1 Diagrama de clases

 

105

3.2 Participantes

 

106

3.3 Colaboraciones

 

106

4. Dominios de aplicación

 

106

5. Ejemplo en C#

 

107

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

El patrón Composite

1. Descripción

 

113

2. Ejemplo

 

113

3. Estructura

 

116

3.1 Diagrama de clases

 

116

3.2 Participantes

 

117

3.3 Colaboraciones

 

117

4. Dominios de aplicación

 

119

5. Ejemplo en C#

 

120

El patrón Decorator

1. Descripción

 

123

2. Ejemplo

 

123

3. Estructura

 

128

3.1 Diagrama de clases

 

128

3.2 Participantes

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

 

129

3.3

Colaboraciones

 

129

4. Dominios de aplicación

129

5. Ejemplo en C#

 

130

El patrón Facade

1. Descripción

 

133

2. Ejemplo

 

133

3. Estructura

 

136

3.1 Diagrama de clases

136

3.2 Participantes

137

3.3 Colaboraciones

137

4. Dominios de aplicación

138

5. Ejemplo en C#

 

139

El patrón Flyweight

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

1. Descripción

 

143

2. Ejemplo

 

143

3. Estructura

 

146

3.1 Diagrama de clases

 

146

3.2 Participantes

 

147

3.3 Colaboraciones

 

147

4. Dominio de aplicación

 

147

5. Ejemplo en C#

 

148

El patrón Proxy

1. Descripción

 

153

2. Ejemplo

 

153

3. Estructura

 

157

3.1 Diagrama de clases

 

157

3.2 Participantes

 

158

3.3 Colaboraciones

 

158

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

4. Dominios de aplicación

 

158

5. Ejemplo en C#

 

159

Introducción a los patrones de comportamiento

1. Presentación

 

165

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

 

166

El patrón Chain of Responsibility

1. Descripción

 

169

2. Ejemplo

 

169

3. Estructura

 

173

3.1 Diagrama de clases

 

173

3.2 Participantes

 

174

3.3 Colaboraciones

 

174

4. Dominios de aplicación

 

174

5. Ejemplo en C#

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

 

175

El patrón Command

1. Descripción

 

179

2. Ejemplo

 

179

3. Estructura

 

184

3.1 Diagrama de clases

 

184

3.2 Participantes

 

185

3.3 Colaboraciones

 

185

4. Dominios de aplicación

 

187

5. Ejemplo en C#

 

187

El patrón Interpreter

1. Descripción

 

193

2. Ejemplo

 

193

3. Estructura

 

196

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

3.1 Diagrama de clases

 

196

3.2 Participantes

 

198

3.3 Colaboraciones

 

198

4. Dominios de aplicación

 

199

5. Ejemplo en C#

 

199

El patrón Iterator

1. Descripción

 

205

2. Ejemplo

 

205

3. Estructura

 

208

3.1 Diagrama de clases

 

208

3.2 Participantes

 

209

3.3 Colaboraciones

 

209

4. Dominios de aplicación

 

209

5. Ejemplo en C#

 

210

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

El patrón Mediator

1. Descripción

 

215

2. Ejemplo

 

215

3. Estructura

 

219

3.1 Diagrama de clases

 

219

3.2 Participantes

 

219

3.3 Colaboraciones

 

220

4. Dominios de aplicación

 

220

5. Ejemplo en C#

 

220

El patrón Memento

1. Descripción

 

227

2. Ejemplo

 

227

3. Estructura

 

230

3.1 Diagrama de clases

 

230

3.2 Participantes

 

231

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

3.3 Colaboraciones

 

231

4. Dominios de aplicación

 

231

5. Ejemplo en C#

 

232

El patrón Observer

1. Descripción

 

237

2. Ejemplo

 

237

3. Estructura

 

240

3.1 Diagrama de clases

 

240

3.2 Participantes

 

241

3.3 Colaboraciones

 

241

4. Dominios de aplicación

 

241

5. Ejemplo en C#

 

242

El patrón State

1. Descripción

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

 

247

2. Ejemplo

 

247

3. Estructura

 

251

3.1 Diagrama de clases

 

251

3.2 Participantes

 

251

3.3 Colaboraciones

 

252

4. Dominios de aplicación

 

252

5. Ejemplo en C#

 

252

El patrón Strategy

1. Descripción

 

259

2. Ejemplo

 

259

3. Estructura

 

262

3.1 Diagrama de clases

 

262

3.2 Participantes

 

262

3.3 Colaboraciones

 

263

4. Dominios de aplicación

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

 

263

5.

Ejemplo en C#

 

264

El patrón Template Method

1. Descripción

269

 

2. Ejemplo

 

269

3. Estructura

274

 

3.1 Diagrama de clases

 

274

 

3.2 Participantes

 

274

 

3.3 Colaboraciones

 

275

4. Dominios de aplicación

275

5. Ejemplo en C#

275

El patrón Visitor

1. Descripción

279

 

2. Ejemplo

 

279

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

3. Estructura

 

283

3.1 Diagrama de clases

 

283

3.2 Participantes

 

284

3.3 Colaboraciones

 

284

4. Dominios de aplicación

 

285

5. Ejemplo en C#

 

285

Composición y variación de patrones

1. Preámbulo

 

293

2. El patrón Pluggable Factory

 

294

2.1 Introducción

 

294

2.2 Estructura

 

299

2.3 Ejemplo en C#

 

300

3. Reflective Visitor

 

305

3.1 Discusión

 

305

3.2 Estructura

 

309

3.3 Ejemplo en C#

 

311

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

4. El patrón Multicast

 

315

 

4.1 Descripción y ejemplo

 

315

 

4.2 Estructura

 

318

 

4.3 Ejemplo en C#

 

320

 

4.4 Discusión: comparación con el patrón Observer

 

327

Los patrones en el diseño de aplicaciones

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

329

2. Otras aportaciones de los patrones de diseño

332

 

2.1 Una base de datos de conocimiento común

 

332

 

2.2 Un conjunto recurrente de técnicas de diseño

 

332

 

2.3 Una herramienta pedagógica del enfoque orientado a objetos

 

332

Ejercicios

 

1.

Enunciado de los ejercicios

 

333

 

1.1

Creación de tarjetas de pago

 

333

 

1.1.1 Creación en función del cliente

 

333

 

1.1.2 Creación con ayuda de una fábrica

 

334

Patrones de diseño para C#

Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y C#

1.2 Autorización de tarjetas de pago

 

334

1.3 Sistema de archivos

 

334

1.4 Navegador gráfico de objetos

 

335

1.5 Estados de la vida profesional de una persona

 

336

1.6 Caché de un diccionario persistente de objetos

 

336

2. Corrección de los ejercicios

 

339

2.1 Creación de tarjetas de pago

 

339

2.1.1 Creación en función del cliente

 

339

2.1.2 Creación con ayuda de una fábrica

 

340

2.2 Autorización de tarjetas de pago

 

341

2.3 Sistema de archivos

 

341

2.4 Navegador gráfico de objetos

 

347

2.5 Estados de la vida profesional de una persona

 

348

2.6 Caché de un diccionario persistente de objetos

 

351

índice

 

353