Patrón Decorador: Reemplazando condicionales con polimorfismo (uso de método Factory)

Patrones de Diseño

En esta lección del Curso de Patrones de Diseño con PHP comenzaré la refactorización de la clase Image para poder aplicar el Patrón Decorador. Primero, voy a reemplazar los condicionales de los diferentes filtros por polimorfismo (concepto que aprendiste en el Curso de programación orientada a objetos con PHP). Por supuesto, voy a apoyarme en las pruebas de instantáneas o snapshots diseñadas en la lección anterior.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Patrón Decorador: Creación de pruebas de instantáneas (Snapshot Testing)

Patrones de Diseño

En la lección anterior del Curso de Patrones de Diseño con PHP, creamos una sencilla clase para procesar imágenes JPEG. Sin embargo, no respaldamos dicha clase con pruebas automatizadas. En esta oportunidad -y para facilitar el trabajo de refactorización que aplicaré a partir de la siguiente lección- voy a escribir un conjunto de pruebas automatizadas aplicando una técnica conocida como «Snapshot Testing» o «pruebas de instantáneas».

Regístrate para ver ésta y cientos de lecciones exclusivas.

Patrón Decorador: Proyecto base para creación de imágenes

Patrones de Diseño

En ésta y las lecciones siguientes de este Curso de Patrones de Diseño con PHP aprenderás sobre el Patrón Decorador. Para ello una vez más comenzaré con un ejemplo sencillo pero con funcionalidad real. En esta ocasión voy a trabajar con la creación y procesamiento de imágenes utilizando la biblioteca GD de PHP. En esta lección trabajaré en una clase Image que aunque podrá crear y transformar una imagen JPEG con diferentes filtros, tendrá lógica estructura y será difícil de extender.  Así que éste será el punto de partida para luego comenzar a refactorizar hasta aplicar el patrón.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Variaciones en la implementación del Patrón Observador

Patrones de Diseño

El Patrón Observer no solo es conocido con otros nombres como Publish-Subscribe, Dependents o incluso Event-Listener, sino que además su implementación puede variar bastante dependiendo del lenguaje de programación, framework, propósito, entorno (backend como PHP o frontend como JavaScript), entre otros.

Para finalizar esta sección quiero enseñarte algunas variaciones en la implementación de este patrón incluyendo su uso con la biblioteca estándar de PHP o SPL por sus singlas en inglés.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Aplicación del Patrón Observer

Patrones de Diseño

El Patrón Observer nos permite definir una relación o dependencia de uno a muchos entre un Sujeto y muchos Observadores. De manera de que cuando el Sujeto cambie, o se produzca un «evento» dentro de dicho Sujeto, sus Observadores sean notificados. En esta lección vamos a aplicar el Patrón Observer en el proyecto de ejemplo que hemos creado hasta ahora, para ello nos vamos a apoyar en diferentes técnicas de Refactorización y por supuesto en la prueba que hemos escrito con PHPUnit.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Patrón Observer: agregando dependencias y funcionalidad de forma directa

Patrones de Diseño
En esta segunda lección sobre el Patrón Observer, voy a escribir todo el código de ejemplo tanto en la prueba RegistrationTest como en la clase Registration, pero lo haré aún sin aplicar el patrón, de forma que podamos ver cuáles son los inconvenientes que se nos presentan al tratar de agregar funcionalidades adicionales al registro de usuarios.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Patrón Observer: Proyecto de Ejemplo

Patrones de Diseño

En ésta y las próximas lecciones del Curso de Patrones de Diseño con PHP vamos a aprender sobre el Patrón Observer. Para ello, voy a comenzar con un proyecto de ejemplo, el cual usará el código que escribí durante las lecciones del Patrón Strategy, aunque daré una pequeño resumen en caso de que no hayas visto dichas lecciones.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Suscríbete a nuestro boletín

Recibe consejos útiles, promos y múltiples recursos directamente en tu correo.

Tu nombre y correo serán enviados directamente a MailChimp. No compartiremos tus datos con otras empresas.