¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Design Patterns en PHP
  3. Los design patterns en el diseño de aplicaciones
Extrait - Design Patterns en PHP Los 23 patrones de diseño: descripciones y soluciones ilustradas en UML2 y PHP (2ª edición)
Extractos del libro
Design Patterns en PHP Los 23 patrones de diseño: descripciones y soluciones ilustradas en UML2 y PHP (2ª edición) Volver a la página de compra del libro

Los design patterns en el diseño de aplicaciones

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

En este libro, se han estudiado los patrones de diseño a través de su implementación con ejemplos concretos. A estas alturas, ya sabemos que los patrones de diseño facilitan el diseño ofreciendo soluciones sólidas a problemas conocidos. Estas soluciones están basadas en una arquitectura que respeta las buenas prácticas de la programación orientada a objetos, que enunciamos al principio de este libro.

En el análisis de un nuevo proyecto, la etapa de descubrimiento de objetos y de su modelización no necesita el uso de los patrones de diseño. Desemboca por lo general en varios diagramas de clases que contienen las clases que representan los objetos de dominio. Estos objetos son resultado de la modelización, y no están destinados a resolver directamente los aspectos funcionales de una aplicación. En el marco de nuestro sistema de venta online, estos objetos son los vehículos, los fabricantes, los clientes, el vendedor, los proveedores, los pedidos, las facturas, etc. La figura 31.1 muestra una parte de esta modelización, a saber el diagrama de clases de los vehículos.

images/fig301.PNG

Figura 31.1 - Diagrama de clases de los vehículos

Esta jerarquía describe la estructura de objetos de dominio. A continuación, es necesario implementar las funcionalidades del sistema, y para ello son necesarios...

Otras aportaciones de los patrones de diseño

1. Una base de datos de conocimiento común

Igual que las clases, los patrones de diseño constituyen abstracciones. Pero los patrones de diseño abarcan varias clases que interactúan entre sí. A lo largo de los capítulos, los hemos representado mediante una estructura constituida por un diagrama de clases complementado con explicaciones sobre los participantes y las colaboraciones. Se trata de una abstracción más rica que una clase. El hecho de poder nombrar, describir y clasificar los patrones de diseño confiere a su catálogo un carácter de base de conocimiento. De este modo, en la etapa de diseño de un sistema, es posible evocar el uso de un patrón de diseño a partir de su nombre, el cual nos dirige hacia una estructura conocida.

2. Un conjunto recurrente de técnicas de diseño

Es posible concebir sistemas sin utilizar patrones de diseño. Pero pasado un tiempo, todo diseñador habrá descubierto por sí mismo la mayoría de patrones de diseño. Descubrirlos leyendo una obra de referencia sobre el tema constituye un ahorro de tiempo y permite salvar los principales escollos en su uso.

3. Una herramienta pedagógica del enfoque orientado a objetos

Los patrones de diseño poseen a su vez un aspecto pedagógico: proporcionan a un principiante un aprendizaje de las buenas...

Unas prácticas muy extendidas

Si utiliza el framework Symfony, sumérjase en sus entrañas y verá que los patrones de diseño se utilizan en multitud de proyectos:

  • El distribuidor de eventos EventDispatcher combina los patrones de diseño Mediator y Observer.

  • El gestor de ítems CRSF CrsfTokenManager implementa el patrón de diseño Strategy.

  • Los formularios se construyen gracias a Builder.

  • La codificación está garantizada gracias a la fábrica EncoderFactory.

  • MimeTypes se apoya en Singleton.

  • HttpCache se sirve de Decorator para incluir el Kernel.

También encontrará gran cantidad de implementaciones de Proxy, Adapter, etc. Los patrones de diseño están por todas partes. A partir de ahora, ya sabrá reconocerlos, utilizarlos e incluso tal vez logre crear alguno nuevo.