3. Patrones estructurales
Explican cómo componer clases y objetos para obtener estructuras más grandes: adaptar interfaces, añadir comportamiento por capas, unificar árboles, simplificar fachadas o compartir estado intrínseco.
Adapter (Refactoring.Guru ↗)
Envuelves una interfaz existente para que otra parte del sistema pueda usarla sin modificar el código original.
Bridge (Refactoring.Guru ↗)
Separas una jerarquía de abstracción de la de implementación para que evolucionen de forma independiente.
Composite (Refactoring.Guru ↗)
Tratas objetos simples y compuestos (árboles) de forma uniforme mediante una interfaz común.
Decorator (Refactoring.Guru ↗)
Añades responsabilidades dinámicamente envolviendo objetos en “capas” compatibles con la misma interfaz.
Facade (Refactoring.Guru ↗)
Ofreces un punto de entrada simple a un subsistema complejo reduciendo el acoplamiento del cliente.
Flyweight (Refactoring.Guru ↗)
Compartes estado intrínseco entre muchas instancias para ahorrar memoria en objetos muy repetidos.
Proxy (Refactoring.Guru ↗)
Sustituto que controla el acceso al objeto real (lazy load, permisos, logging, remoto, etc.).