¡GoConqr estrena diseño! Cuéntanos qué te parece.

Mapa mental

Patrones Estructurales

F Rjuf Inglés

Patrones Estructurales

Contenido del mapa

Patrones Estructurales

  1. Los patrones estructurales explican cómo ensamblar objetos y clases en estructuras más grandes, a la vez que se mantiene la flexibilidad y eficiencia de estas estructuras.

  2. Bridge

    • es un patrón de diseño estructural que te permite dividir una clase grande, o un grupo de clases estrechamente relacionadas, en dos jerarquías separadas (abstracción e implementación) que pueden desarrollarse independientemente la una de la otra.
    • Ventajas y desventajas
      • Ventajas
        • Desacoplamiento: Permite que la abstracción y la implementación varíen independientemente, lo que facilita la modificación de cada una sin afectar a la otra.
        • Facilita el cambio de implementaciones: Si necesitas cambiar la implementación de una abstracción, el patrón Bridge hace que este proceso sea más sencillo y transparente.
        • Mejora la estructura del código: Al dividir el diseño en abstracciones e implementaciones, se obtiene un código más organizado y fácil de entender.
      • Desventajas
        • Complejidad adicional: El patrón Bridge introduce una capa adicional de abstracción, lo que puede aumentar la complejidad del código, especialmente para aplicaciones pequeñas y simples.
        • Posible sobrecarga: Dependiendo de cómo se implemente, el uso excesivo del patrón Bridge puede llevar a una sobrecarga en términos de rendimiento y consumo de memoria.
    • variaciones
      • Bridge refinado
      • Bridge en capas
      • Bridge transpartente
      • Bridge doble
  3. Composite

    • Composite es un patrón de diseño estructural que te permite componer objetos en estructuras de árbol y trabajar con esas estructuras como si fueran objetos individuales
    • Ventajas y desventajas
      • Ventajas
        • Simplifica notablemente al cliente, al no tener éste que distinguir entre objetos simples y compuestos
        • Favorece la extensibilidad, ya que es muy fácil añadir nuevos tipos de componentes, tanto simples como compuestos.
      • Desventajas
        • Puede hacer el diseño peligrosamente genérico,
    • Variaciones
      • Composite anidado
      • Composite transparente
      • Composite limitado
      • Composite con operaciones adicionales
  4. Decorator

    • Decorator es un patrón de diseño estructural que te permite añadir funcionalidades a objetos colocando estos objetos dentro de objetos encapsuladores especiales que contienen estas funcionalidades.
    • ventajas y desventajas
      • ventajas
        • Aporta una mayor flexibilidad que la herencia estática, permitiendo añadir una funcionalidad dos o más veces.
        • Evita concentrar en lo alto de la jerarquía clases guiadas por las responsabilidades
      • Desventajas
        • La transparencia tiene el inconveniente de que, a pesar de ser diferentes por muchos motivos, un decorador y un componente son indistinguibles, por lo que no se puede confiar en la identidad de los objetos.
        • Gran fragmentación; el sistema se llena de gran cantidad de objetos pequeños, lo cual puede dificultar el aprendizaje de su funcionamiento y su depuración.
    • variaciones
      • Decorador anidado
      • Decorador transparente
      • Decorador limitado
      • Decorador con estado
      • Decorador con opciones de configuración
  5. Facade

    • es un patrón de diseño estructural que proporciona una interfaz simplificada a una biblioteca, un framework o cualquier otro grupo complejo de clases.
    • Ventajas y desventajas
      • Ventajas
        • Al separar al cliente de los componentes del subsistema, se reduce el número de objetos con los que el cliente trata, facilitando así el uso del subsistema.
        • Se promueve un acoplamiento débil entre el subsistema y sus clientes, eliminándose o reduciéndose las dependencias.
        • No existen obstáculos para que las aplicaciones usen las clases del subsistema que necesiten. De esta forma podemos elegir entre facilidad de uso y generalidad.
      • desventajas
        • Como inconveniente, se tiene considerar el caso en que varios clientes necesiten acceder a subconjuntos diferentes de la funcionalidad que provee el sistema, podrían acabar usando sólo una pequeña parte de la fachada
    • variaciones
      • Facade personalizado
      • Facade parametrizado
      • Facade con caché
      • Facade distribuida
      • Facade con transacciones
  6. Flyweight

    • Flyweight es un patrón de diseño estructural que te permite mantener más objetos dentro de la cantidad disponible de RAM compartiendo las partes comunes del estado entre varios objetos en lugar de mantener toda la información en cada objeto.
    • Ventajas y desventajas
      • ventajas
        • Mejora en la eficiencia, sobre todo en relación con el ahorro en el almacenamiento, que aumenta paralelamente con la compartición de objetos y es función de:
      • Desventajas
        • Se introducen costes en tiempo de ejecución asociados a las transferencias, búsquedas y/o computación del estado extrínseco (y su almacenamiento)
    • Variaciones
      • Flyweight Factory:
      • Stateful Flyweight
      • Thread-safe Flyweight
      • Composite Flyweight
      • Virtual Proxy Flyweight
  7. proxy

    • es un patrón de diseño estructural que te permite proporcionar un sustituto o marcador de posición para otro objeto. Un proxy controla el acceso al objeto original, permitiéndote hacer algo antes o después de que la solicitud llegue al objeto original.
    • Ventajas y desventajas
      • Ventajas
        • Se introduce un nivel de indirección en el acceso al objeto, que permite al apoderado remoto ocultar el hecho de que el objeto reside en un espacio de direcciones distinto, al apoderado virtual realizar optimizaciones como la creación de objetos por demanda y al apoderado de protección y a las referencias “inteligentes” realizar tareas adicionales de vigilancia sobre el objeto al que se accede.
        • Facilita otra optimización, relacionada con la creación de objetos por demanda: la técnica de COPY-ON-WRITE
      • Desventajas
        • Complejidad añadida: Introducir un proxy puede agregar complejidad a un sistema, especialmente si no se maneja adecuadamente.
        • En algunos casos, implementar un proxy puede requerir la duplicación de código, lo que puede introducir problemas de mantenimiento si los cambios deben realizarse en múltiples lugares.
        • Si el proxy es utilizado en un entorno multihilo, puede ser necesario agregar sincronización adicional para garantizar la seguridad de la concurrencia.
  8. adapter

    • es un patrón de diseño estructural que permite la colaboración entre objetos con interfaces incompatibles.
      • Este patrón es implementado cuando se desea homogeneizar la forma de trabajar con estas interfaces incompatibles, para lo cual se crea una clase intermedia que funciona como un adaptador. Esta clase adaptador proporcionará los métodos para interactuar con la interface incompatible.
    • Variaciones
      • Un adaptador y múltiples adaptables
      • Adaptadores no basados en interfaz
      • Una capa de interfaz entre el invocador y el adaptador, y otra entre el adaptador y el adaptable
    • Ventajas y Desventajas
      • Ventajas
        • A nivel de clases
          • Facilidad para redefinir el comportamiento de la clase adaptada.
          • Simplicidad (un sólo objeto, no hay punteros ni indirecciones adicionales).
        • A nivel de objetos
          • Flexibilidad para que un sólo adaptador trabaje con muchas clases a adaptar (en concreto, puede hacerlo con toda una jerarquía de clases).
          • Extensibilidad, puesto que se pueden añadir funcionalidades a todas las clases adaptadas a la vez.

Imágenes y archivos del mapa

  • Patrones Estructurales
  • Patrones Estructurales
  • Patrones Estructurales
  • Patrones Estructurales
  • Patrones Estructurales
  • Patrones Estructurales
  • Patrones Estructurales

Información

Descripción
Mapa Mental sobre Patrones Estructurales, creado por F Rjuf el 04/03/2024.
Creado por
F Rjuf
Visitas
1
Valoración

Más sobre Patrones de diseño

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?