Please enable JavaScript.
Coggle requires JavaScript to display documents.
Patrónes Creacionales, Patrones de Comportamiento, Patrones Estructurales,…
Patrónes Creacionales
Factoy Method
-
Características:
- Define un método para crear objetos.
- Permite cambiar la clase instanciada.
-
-
-
Abstract Factory
-
Características:
- Agrupa productos compatibles.
- Evita dependencias entre cliente y clases concretas.
-
-
-
Builder
Descripción
-
Características:
- Separa construcción de representación.
- Permite configuraciones variadas.
-
-
-
-
Prototype
-
Características:
- Clonación profunda o superficial.
- Reduce creación costosa.
-
-
-
Singleton
-
Características:
- Acceso estático global.
- Control de ciclo de vida.
Caso de uso: Configuración, logger, conexión única.
-
-
-
Patrones Estructurales
Adapter
Características
-
-
-
Características:
- Convierte una interfaz a otra.
- Evita modificar el código original.
Bridge
Descripción
-
Características:
- Reduce acoplamiento.
- Permite intercambiar implementaciones.
-
Ventajas: Escalable, limpio.
-
Composite
Descripción
-
Características: -Árbol jerárquico.
-
-
-
-
Facade
Descripción
-
Características:
- Proporciona una interfaz simple.
- Oculta detalles internos.
-
-
-
Flyweight
Descripción
-
Características:
- Reutiliza objetos inmutables.
- Divide estado interno/externo.
-
-
-
Proxy
Descripción
-
Características:
- Representa al objeto real.
- Añade seguridad, cache o lazy loading.
-
-
-
Patrones Emergentes
MVC
Propósito: Separar la lógica de datos, la vista y el control.Características:
- División clara de responsabilidades.
- Facilita pruebas y mantenimiento.
Caso de uso: Aplicaciones web como Rails, Laravel, Spring MVC.Ventajas: Código organizado y escalable.Cuándo usarlo: Cuando la interfaz y la lógica cambian frecuentemente.
DAO
Propósito: Abstraer el acceso a la base de datos.Características:
- Capa dedicada para consultas.
- Aísla la aplicación de detalles SQL.
Caso de uso: CRUD centralizados.Ventajas: Reutilización y menor acoplamiento.Cuándo usarlo: Proyectos con persistencia compleja.
CQRS
Propósito: Separar las operaciones de lectura y escritura.Características:
- Optimización independiente.
- Permite escalar lecturas a gran volumen.
Caso de uso: Sistemas de eventos o microservicios.Ventajas: Rendimiento y claridad.Cuándo usarlo: Cuando lecturas y comandos requieren arquitecturas distintas.
DDD
Propósito: Modelar software basado en el dominio real.Características:
- Lenguaje ubicuo.
- Entidades, agregados, bounded contexts.
Caso de uso: Sistemas corporativos complejos.Ventajas: Enfoque profundo en el negocio.Cuándo usarlo: Dominios extensos y con reglas complicadas.
MVVM
Propósito: Separar UI y lógica con data binding.Características:
- Sincronización automática UI-lógica.
- ViewModel desacoplado.
Caso de uso: Apps móviles (Android), WPF, Flutter (similar patrón).Ventajas: Código limpio y reutilizable.Cuándo usarlo: Interfaces con muchos estados dinámicos.
MVP
Propósito: Que un Presenter gestione lógica e interacción.Características:
- Vista pasiva.
- Presenter controla el flujo.
Caso de uso: Apps con muchas interacciones UI.Ventajas: Fácil de probar y mantener.Cuándo usarlo: Interfaces complejas con responsabilidad clara.