Patrones de diseño de comportamiento
Patrones de diseño3 patrones · 6 ejercicios corregidos · código en Java, Python, JavaScript, C# y PHP
Los patrones de comportamiento tratan de quién hace qué y cómo se avisan los objetos: cambiar un algoritmo sin llenar el código de if (Strategy), avisar a muchos interesados de un cambio (Observer), que un objeto se comporte distinto según su estado (State), convertir una petición en un objeto para guardarla, deshacerla o encolarla (Command).
Son los patrones que más se usan sin saber su nombre: cada addEventListener es un Observer, cada Comparator es una Strategy y cada for-each usa un Iterator.
Los patrones
Strategy
Encapsula cada variante de un algoritmo en su propia clase con una interfaz común, para elegirla o cambiarla en tiempo de ejecución sin llenar el código de if: envíos, descuentos, pagos, ordenaciones.básico2 ejerciciosObserver
Un objeto (el sujeto) guarda una lista de interesados y les avisa automáticamente cuando cambia, sin saber quiénes son: los eventos de un botón, las notificaciones o un modelo que avisa a sus vistas.intermedio2 ejerciciosState (máquina de estados)
Cada estado de un objeto es una clase que decide qué hacer con cada acción y a qué estado pasar: un pedido, un semáforo o el enemigo de un juego, sin un switch gigante que crece con cada estado.intermedio2 ejercicios
Cuál elegir
| Patrón | Resuelve | Lo verás en |
|---|---|---|
| Strategy | Cambiar un algoritmo en tiempo de ejecución sin if | Comparator, formas de pago, cálculo de envíos |
| Observer | Avisar a muchos objetos de un cambio sin conocerlos | Eventos de botones, LiveData, addEventListener |
| State (máquina de estados) | Que un objeto cambie de comportamiento según su estado | Pedidos, semáforos, enemigos de un juego, conexiones |