Saltar al contenido

Patrones Estructurales

Cómo ensamblar clases y objetos en estructuras más grandes sin perder flexibilidad: las señales de que el problema entra en esta categoría, y los siete patrones que la componen.

2 min. de lectura

Los patrones estructurales resuelven cómo ensamblar clases y objetos en estructuras más grandes, manteniendo esas estructuras flexibles y eficientes aunque las piezas individuales cambien.

Señales de que el problema entra en esta categoría:

  • Necesitás que dos interfaces incompatibles trabajen juntas sin modificar ninguna de las dos.
  • Una abstracción y su implementación están mezcladas en la misma jerarquía de clases, y cambiar una obliga a tocar la otra.
  • Necesitás tratar de forma uniforme a un objeto individual y a una composición de esos objetos (por ejemplo, un archivo y una carpeta que contiene archivos).
  • Necesitás sumarle responsabilidades a un objeto puntual sin generar una explosión de subclases para cada combinación posible.
  • Un subsistema tiene tantas piezas y dependencias internas que el código que lo usa se vuelve difícil de seguir.
  • Tenés una enorme cantidad de objetos muy parecidos entre sí, y eso está consumiendo memoria de más.
  • Necesitás controlar o interceptar el acceso a un objeto sin que quien lo usa lo note.

Los siete patrones de esta categoría:

  • Adapter — hace que dos interfaces incompatibles puedan trabajar juntas.
  • Bridge — separa una abstracción de su implementación para que ambas puedan evolucionar por separado.
  • Composite — compone objetos en estructuras de árbol y los trata de forma uniforme, sean hojas o composiciones.
  • Decorator — agrega responsabilidades a un objeto dinámicamente, envolviéndolo en otro objeto compatible.
  • Facade — expone una interfaz simple sobre un subsistema complejo.
  • Flyweight — comparte el estado común entre muchos objetos similares para ahorrar memoria.
  • Proxy — coloca un sustituto delante de un objeto para controlar el acceso a él.

Te sirvió, compartilo

// ¿te sirvió?
// compartilo