- Guía práctica que explica los 23 patrones de diseño clásicos (Banda de los Cuatro).
- Enseña cuándo y por qué aplicar un patrón, no solo a memorizarlos.
- Divide los patrones en tres categorías: creacionales, estructurales y de comportamiento.
1 Factory Method → define una interfaz para crear objetos, pero permite que las subclases decidan cuál clase instanciar.
2 Abstract Factory → fabrica familias de objetos relacionados sin especificar sus clases concretas.
3 Builder → construye objetos complejos paso a paso.
4 Prototype → crea nuevos objetos copiando (clonando) una instancia existente.
5 Singleton → asegura que una clase tenga una sola instancia en todo el programa.
- Adapter → convierte la interfaz de una clase en otra que el cliente espera.
- Bridge → separa una abstracción de su implementación para que puedan evolucionar independientemente.
- Composite → organiza objetos en estructuras jerárquicas tipo árbol, para tratar elementos individuales y compuestos de la misma manera.
- Decorator → añade responsabilidades a un objeto de manera dinámica sin alterar su clase.
- Facade → proporciona una interfaz simple para un sistema complejo.
- Flyweight → reduce el consumo de memoria compartiendo objetos comunes.
- Proxy → actúa como sustituto o representante de otro objeto para controlar su acceso.
- Chain of Responsibility → pasa una solicitud a lo largo de una cadena de manejadores hasta que uno la procesa.
- Command → encapsula una petición como un objeto, permitiendo deshacer/rehacer operaciones.
- Interpreter → define una gramática y un intérprete para interpretar frases en ese lenguaje.
- Iterator → permite recorrer los elementos de una colección sin exponer su representación interna.
- Mediator → centraliza la comunicación entre objetos, evitando que estén acoplados directamente.
- Memento → guarda el estado de un objeto para restaurarlo después.
- Observer → define una relación de suscripción para que varios objetos reciban notificaciones de cambios en otro objeto.
- State → permite que un objeto cambie su comportamiento cuando cambia su estado interno.
- Strategy → define una familia de algoritmos y permite intercambiarlos en tiempo de ejecución.
- Template Method → define el esqueleto de un algoritmo y deja que las subclases definan algunos pasos.
- Visitor → separa un algoritmo de la estructura de objetos sobre la que opera.
👉 Resumen corto:
- Creacionales = cómo crear objetos
- Estructurales = cómo organizarlos
- De comportamiento = cómo interactúan
- Resuelven problemas comunes de diseño de software.
- Facilitan la comunicación entre programadores con un lenguaje común.
- Mejoran la calidad del código, haciéndolo más flexible y mantenible.
- Evitan reinventar la rueda con soluciones ya probadas.
- Son clave en el mundo profesional: trabajo en equipo, entrevistas y proyectos grandes.
Los patrones de diseño son como una caja de herramientas probadas que permiten organizar, comunicar y mantener mejor el software.