Please enable JavaScript.
Coggle requires JavaScript to display documents.
Características y usos de los patrones de diseño, image, Independencia…
Características y usos de los patrones de diseño
¿Que es un patrón de diseño?
Los patrones de diseño, son una solución general, reutilizable y aplicable a diferentes problemas de diseño de software.
Ejemplo
Problema
Imagina que estás desarrollando una aplicación y necesitas una configuración centralizada que sea accesible desde cualquier parte del código.
Solución
Implementas una clase que actúa como contenedor para la configuración. A través del patrón Singleton, garantizas que solo haya una única instancia de esta clase en todo el sistema.
Diferencia entre los Patrones de Arquitectura de Software y los Patrones de Diseño
Patrones de Diseño
Los patrones de diseño brindan soluciones a nivel de código.
Operan a nivel de clases y objetos.
Resuelven problemas específicos de diseño
Afecta la arquitectura completa del sistema y su escalabilidad.
Ejemplo
Singleton, Observer, Strategy.
Patrones de Arquitectura de software
La arquitectura brinda soluciones a nivel del proyecto entero.
Operan a nivel de la estructura y organización del sistema.
Abordan problemas más amplios relacionados con la organización y la estructura general del sistema.
Afecta principalmente a clases individuales y sus interacciones.
Ejemplo
Microservicios, Arquitectura en Capas, Hexagonal.
Tipos
Patrones creacionales
Patrones estructurales
Patrones de comportamiento
Patrones de arquitectura de software
Adapter
Características
Reusabilidad
Resolución de Incompatibilidades
Mantenimiento de la Transparencia
Integración con Sistemas Existentes
Descripción
Este patrón se utiliza cuando una clase no puede interactuar directamente con otra clase debido a diferencias en sus interfaces, y se necesita un adaptador para que puedan colaborar.
Desventajas
Potencial de Pérdida de Rendimiento
Posible Sobrecarga de Adaptadores
Dependencia de la Estructura Interna
Ventajas
Reutilización de Código Existente
Integración de Componentes
Desacoplamiento
Strategy
Características
Encapsulación
Reutilización de Código
Aplicación de Principios SOLID
Interfaz Común
Polimorfismo
Descrpción
Este patrón permite que el cliente pueda elegir la estrategia apropiada en tiempo de ejecución, sin modificar el código que utiliza la estrategia.
ventajas
Escalabilidad y flexibilidad
Intercambio Dinámico
Manejo de Variaciones
desventajas
Aumento de Clases
Posible Complejidad Adicional
Observer
Descripción
Se utiliza para establecer una relación de uno a muchos entre objetos, de modo que cuando un objeto cambia de estado, todos sus dependientes son notificados y actualizados automáticamente.
Características
Relación Uno a Muchos
Desacoplamiento
Notificación Automática
Reusabilidad
Ventajas
Extensibilidad
Notificación Automática
Inversión de Dependencias
Desventajas
Posible Sobrecarga
Orden de Notificación no Garantizado
Notificaciones No Selectivas
Singleton
Descripción
Restringe la creación a un único objeto la creación de objetos pertenecientes a una clase y asegura de que sólo haya esta instancia única.
Características
El patrón Singleton es un patrón de diseño que garantiza que solo exista una instancia de una clase y proporciona un punto de acceso global a ella.
Ventajas
Asegurar que hay sólo una instancia de una clase.
Desventajas
Restricciones innecesarias cuando no se requiere que haya una sola instancia.
Factory method
Descripción
Es un patrón de diseño creacional que proporciona una interfaz para crear objetos en una superclase, mientras permite a las subclases alterar el tipo de objetos que se crearán.
Características
Delegación de la Creación
Interfaz Común
Personalización por Subclases
ventajas
Flexibilidad y extensibilidad
Aplicabilidad a jerarquías de clases
Acoplamiento reducido
desventajas
Complejidad adicional
Dificultad para entender en pequeñas aplicaciones
Mayor cantidad de clases
Independencia entre Component