PATRONES DE DISEÑO ESTRUCTURAL
Los patrones de diseño estructural son un tipo de patrón de diseño que se centran en cómo los objetos y las clases se combinan para formar estructuras más grandes. Estos patrones ayudan a los desarrolladores a diseñar sistemas de software más flexibles, escalables y mantenibles.
Ilustracion 1.- Patrón de diseño estructural
1.-Adapter
El patrón de diseño Adapter permite que dos clases que no son compatibles entre sí se comuniquen. El adaptador actúa como una interfaz entre las dos clases, convirtiendo las llamadas de una clase a un formato compatible con la otra.
EJEMPLO
Una aplicación de comercio electrónico podría utilizar el patrón Adapter para permitir que un cliente utilice un dispositivo móvil para realizar una compra. El adaptador traduciría las entradas del dispositivo móvil a un formato compatible con el sistema de pedidos de la aplicación.
VENTAJAS
- Permite que dos clases que no son compatibles entre sí se comuniquen.
- Hace que el código sea más flexible y extensible.
- Reduce la duplicación de código.
DESVENTAJAS
- Puede aumentar la complejidad del código.
2.-Bridge
El patrón de diseño Bridge separa la abstracción de la implementación. Esto permite que las dos partes se modifiquen independientemente sin romper la otra.
EJEMPLO
Una aplicación de dibujo podría utilizar el patrón Bridge para separar la lógica de dibujo de la interfaz de usuario. La lógica de dibujo sería la abstracción, mientras que la interfaz de usuario sería la implementación. Esto permitiría que se utilizaran diferentes interfaces de usuario con la misma lógica de dibujo.
VENTAJAS
- Permite que las dos partes se modifiquen independientemente.
- Hace que el código sea más flexible y extensible.
- Reduce la duplicación de código.
DESVENTAJAS:
- Puede aumentar la complejidad del código.
3.-Composite
El patrón de diseño Composite permite que los objetos se combinen para formar estructuras jerárquicas. Esto permite que los objetos se representen de forma uniforme, independientemente de su complejidad.
EJEMPLO
Una aplicación de gestión de archivos podría utilizar el patrón Composite para representar una estructura de archivos. Un archivo simple sería un objeto compuesto, mientras que una carpeta sería un objeto compuesto que contiene otros objetos compuestos.
VENTAJAS
- Permite que los objetos se representen de forma uniforme.
- Hace que el código sea más flexible y extensible.
- Reduce la duplicación de código.
DESVENTAJAS
- Puede aumentar la complejidad del código.
4.-Decorator
El patrón de diseño Decorator permite añadir comportamiento a un objeto sin modificar su estructura. Esto se hace mediante la creación de un objeto decorador que se coloca alrededor del objeto original.
EJEMPLO
Una aplicación de dibujo podría utilizar el patrón Decorator para añadir efectos especiales a las imágenes. Un objeto decorador podría añadir un borde a una imagen, o podría añadir un efecto de sombra.
VENTAJAS
- Permite añadir comportamiento a un objeto sin modificar su estructura.
- Hace que el código sea más flexible y extensible.
- Reduce la duplicación de código.
DESVENTAJAS
- Puede aumentar la complejidad del código.
5.-Facade
El patrón de diseño Facade proporciona una interfaz simplificada a un conjunto complejo de subsistemas. Esto hace que sea más fácil para los clientes interactuar con los subsistemas.
EJEMPLO
Una aplicación de gestión de proyectos podría utilizar el patrón Facade para proporcionar una interfaz simplificada a un conjunto de subsistemas de gestión de recursos, gestión de tareas y gestión de riesgos. El cliente podría utilizar la fachada para realizar operaciones comunes, como crear un nuevo proyecto, asignar tareas a los miembros del equipo o rastrear el progreso del proyecto.
VENTAJAS
- Hace que sea más fácil para los clientes interactuar con los subsistemas.
- Reduce la complejidad del código.
DESVENTAJAS
- Puede reducir la flexibilidad de los subsistemas.
6.-Proxy
El patrón de diseño Proxy proporciona un objeto sustituto que representa a otro objeto. Esto se puede hacer por varias razones, como para controlar el acceso al objeto real, para proporcionar un cache del objeto real o para proporcionar un registro de las operaciones realizadas en el objeto real.
EJEMPLO
Una aplicación de comercio electrónico podría utilizar el patrón Proxy para controlar el acceso a un objeto que representa un recurso costoso, como una base de datos. El proxy podría verificar las credenciales del usuario antes de permitir que el usuario acceda al objeto.
- Permite controlar el acceso al objeto real.
- Proporciona un cache del objeto real.
- Proporciona un registro de las operaciones realizadas en el objeto real.
DESVENTAJAS
- Puede aumentar la complejidad del código.
REFERENCIAS
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object-oriented software. Addison-Wesley.
Martin, R. C. (2003). Agile software development: Principles, patterns, and practices. Pearson Education.
Fowler, M. (2002). Patterns of enterprise application architecture. Addison-Wesley.
Comentarios
Publicar un comentario