Sunteți pe pagina 1din 15

Patrones de diseño en PHP

Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

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

5.1 Aspectos específicos de los ejemplos de código PHP 23

Caso de estudio: venta online de vehículos

1. Descripción del sistema 27

2. Cuaderno de carga 27

3. Uso de patrones de diseño 29

Introducción a los patrones de construcción

1. Presentación 31

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

2.1 Problemática 32
2.2 Soluciones propuestas por los patrones de construcción 33

www.ediciones-eni.com © Ediciones ENI 1/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

El patrón Abstract Factory

1. Descripción 35

2. Ejemplo 35

3. Estructura 38

3.1 Diagrama de clases 38


3.2 Participantes 39
3.3 Colaboraciones 39

4. Dominios de uso 39

5. Ejemplo en PHP 40

El patrón Builder

1. Descripción 51

2. Ejemplo 51

3. Estructura 53

3.1 Diagrama de clases 53


3.2 Participantes 53
3.3 Colaboraciones 54

4. Dominios de uso 55

5. Ejemplo en PHP 55

El patrón Factory Method

www.ediciones-eni.com © Ediciones ENI 2/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

1. Descripción 63

2. Ejemplo 63

3. Estructura 65

3.1 Diagrama de clases 65


3.2 Participantes 65
3.3 Colaboraciones 66

4. Dominios de uso 66

5. Ejemplo en PHP 66

El patrón Prototype

1. Descripción 73

2. Ejemplo 73

3. Estructura 76

3.1 Diagrama de clases 76


3.2 Participantes 77
3.3 Colaboración 77

4. Dominios de uso 77

5. Ejemplo en PHP 78

El patrón Singleton

www.ediciones-eni.com © Ediciones ENI 3/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

1. Descripción 85

2. Ejemplo 85

3. Estructura 86

3.1 Diagrama de clases 86


3.2 Participante 86
3.3 Colaboración 87

4. Dominio de uso 87

5. Ejemplos en PHP 87

5.1 Documentación en blanco 87


5.2 La clase Comercial 89

Introducción a los patrones de estructuración

1. Presentación 93

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

El patrón Adapter

1. Descripción 97

2. Ejemplo 97

3. Estructura 99

3.1 Diagrama de clases 99


3.2 Participantes 99

www.ediciones-eni.com © Ediciones ENI 4/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

3.3 Colaboraciones 100

4. Dominios de aplicación 100

5. Ejemplo en PHP 101

El patrón Bridge

1. Descripción 107

2. Ejemplo 107

3. Estructura 110

3.1 Diagrama de clases 110


3.2 Participantes 111
3.3 Colaboraciones 111

4. Dominios de aplicación 111

5. Ejemplo en PHP 112

El patrón Composite

1. Descripción 119

2. Ejemplo 119

3. Estructura 122

3.1 Diagrama de clases 122


3.2 Participantes 122
3.3 Colaboraciones 123

www.ediciones-eni.com © Ediciones ENI 5/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

4. Dominios de aplicación 124

5. Ejemplo en PHP 125

El patrón Decorator

1. Descripción 129

2. Ejemplo 129

3. Estructura 134

3.1 Diagrama de clases 134


3.2 Participantes 135
3.3 Colaboraciones 135

4. Dominios de aplicación 135

5. Ejemplo en PHP 136

El patrón Facade

1. Descripción 141

2. Ejemplo 141

3. Estructura 144

3.1 Diagrama de clases 144


3.2 Participantes 145
3.3 Colaboraciones 145

www.ediciones-eni.com © Ediciones ENI 6/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

4. Dominios de aplicación 146

5. Ejemplo en PHP 147

El patrón Flyweight

1. Descripción 153

2. Ejemplo 153

3. Estructura 156

3.1 Diagrama de clases 156


3.2 Participantes 156
3.3 Colaboraciones 157

4. Dominio de aplicación 157

5. Ejemplo en PHP 157

El patrón Proxy

1. Descripción 163

2. Ejemplo 163

3. Estructura 167

3.1 Diagrama de clases 167


3.2 Participantes 168
3.3 Colaboraciones 168

www.ediciones-eni.com © Ediciones ENI 7/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

4. Dominios de aplicación 168

5. Ejemplo en PHP 169

Introducción a los patrones de comportamiento

1. Presentación 173

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

El patrón Chain of Responsibility

1. Descripción 177

2. Ejemplo 177

3. Estructura 181
3.1 Diagrama de clases 181
3.2 Participantes 181
3.3 Colaboraciones 182

4. Dominios de aplicación 182

5. Ejemplo en PHP 182

El patrón Command

1. Descripción 189

www.ediciones-eni.com © Ediciones ENI 8/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

2. Ejemplo 189

3. Estructura 193
3.1 Diagrama de clases 193
3.2 Participantes 194
3.3 Colaboraciones 194

4. Dominios de aplicación 195

5. Ejemplo en PHP 196

El patrón Interpreter

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 210

5. Ejemplo en PHP 210

El patrón Iterator

1. Descripción 219

www.ediciones-eni.com © Ediciones ENI 9/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

2. Ejemplo 219

3. Estructura 221
3.1 Diagrama de clases 221
3.2 Participantes 222
3.3 Colaboraciones 222

4. Dominios de aplicación 222

5. Ejemplo en PHP 222

El patrón Mediator

1. Descripción 229

2. Ejemplo 229

3. Estructura 233
3.1 Diagrama de clases 233
3.2 Participantes 233
3.3 Colaboraciones 234

4. Dominios de aplicación 234

5. Ejemplo en PHP 234

El patrón Memento

1. Descripción 245

www.ediciones-eni.com © Ediciones ENI 10/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

2. Ejemplo 245

3. Estructura 248
3.1 Diagrama de clases 248
3.2 Participantes 248
3.3 Colaboraciones 249

4. Dominios de aplicación 249

5. Ejemplo en PHP 249

El patrón Observer

1. Descripción 257

2. Ejemplo 257

3. Estructura 260
3.1 Diagrama de clases 260
3.2 Participantes 260
3.3 Colaboraciones 261

4. Dominios de aplicación 261

5. Ejemplo en PHP 261

El patrón State

1. Descripción 267

www.ediciones-eni.com © Ediciones ENI 11/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

2. Ejemplo 267

3. Estructura 270
3.1 Diagrama de clases 270
3.2 Participantes 270
3.3 Colaboraciones 271

4. Dominios de aplicación 271

5. Ejemplo en PHP 271

El patrón Strategy

1. Descripción 281

2. Ejemplo 282

3. Estructura 284
3.1 Diagrama de clases 284
3.2 Participantes 284
3.3 Colaboraciones 285

4. Dominios de aplicación 285

5. Ejemplo en PHP 286

El patrón Template Method

1. Descripción 293

www.ediciones-eni.com © Ediciones ENI 12/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

2. Ejemplo 293

3. Estructura 298
3.1 Diagrama de clases 298
3.2 Participantes 298
3.3 Colaboraciones 299

4. Dominios de aplicación 299

5. Ejemplo en PHP 299

El patrón Visitor

1. Descripción 303

2. Ejemplo 303

3. Estructura 307
3.1 Diagrama de clases 307
3.2 Participantes 308
3.3 Colaboraciones 308

4. Dominios de aplicación 309

5. Ejemplo en PHP 309

Composición y variación de patrones

1. Preámbulo 317

www.ediciones-eni.com © Ediciones ENI 13/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

2. El patrón Pluggable Factory 318


2.1 Introducción 318
2.2 Estructura 323
2.3 Ejemplo en PHP 324

3. Reflective Visitor 335

3.1 Discusión 335


3.2 Estructura 339
3.3 Ejemplo en PHP 341

4. El patrón Multicast 351

4.1 Descripción y ejemplo 351


4.2 Estructura 354
4.3 Ejemplo en PHP 355
4.4 Discusión: comparación con el patrón Observer 364

El patrón composite MVC

1. Introducción al problema 365

2. El patrón composite MVC 366

3. Ejemplo en PHP 373

3.1 Introducción 373


3.2 Arquitectura 375
3.3 Estudio del código 376

Los patrones en el diseño de aplicaciones

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

www.ediciones-eni.com © Ediciones ENI 14/15


Patrones de diseño en PHP
Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

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


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

Ejercicios

1. Enunciado de los ejercicios 399

1.1 Creación de tarjetas de pago 399


1.1.1 Creación en función del cliente 399
1.1.2 Creación con ayuda de una fábrica 400
1.2 Autorización de tarjetas de pago 400
1.3 Sistema de archivos 400
1.4 Navegador gráfico de objetos 401
1.5 Estados de la vida profesional de una persona 402
1.6 Caché de un diccionario persistente de objetos 402

2. Corrección de los ejercicios 405

2.1 Creación de tarjetas de pago 405


2.1.1 Creación en función del cliente 405
2.1.2 Creación con ayuda de una fábrica 406
2.2 Autorización de tarjetas de pago 406
2.3 Sistema de archivos 407
2.4 Navegador gráfico de objetos 416
2.5 Estados de la vida profesional de una persona 417
2.6 Caché de un diccionario persistente de objetos 419

índice 421

www.ediciones-eni.com © Ediciones ENI 15/15