Please enable JavaScript.
Coggle requires JavaScript to display documents.
Patrones de Diseño - Coggle Diagram
Patrones de Diseño
-
Patrones Estructurales
Adapter
-
-
-
-
-
-
-
-
Cuándo usarlo: Cuando quieres usar una clase existente pero su interfaz no coincide con lo que tu código espera.
Bridge
Propósito: Separar una abstracción de su implementación para que puedan variar de forma independiente.
-
-
-
Caso de uso: Jerarquía de “Controles” (botón, checkbox) que se puede dibujar con diferentes APIs gráficas (OpenGL, DirectX).
-
-
-
Cuándo usarlo: Cuando tienes múltiples dimensiones de variación (por ejemplo, tipo + plataforma).
Composite
-
-
-
-
-
-
-
-
Cuándo usarlo: Cuando necesitas representar jerarquías parte-todo (menus, escenas gráficas, etc.).
Decorator
-
-
-
-
-
-
-
-
Cuándo usarlo: Cuando quieres añadir funcionalidad opcional a objetos individuales en tiempo de ejecución.
Facade
-
-
-
-
Caso de uso: Un método “reproducirPelícula()” que por dentro configura audio, video, subtítulos, etc.
-
-
-
-
Flyweight
Propósito: Ahorrar memoria compartiendo objetos de estado inmutable entre muchas instancias similares.
-
-
-
Caso de uso: Representar caracteres de un documento de texto con objetos compartidos para cada letra.
-
-
-
-
Proxy
-
-
-
Añade lógica extra (control, cache, seguridad).
-
-
Permite control de acceso, carga diferida (lazy), o caché transparente.
-
Cuándo usarlo: Cuando necesitas controlar acceso a un objeto costoso, remoto o sensible.
Patrones Emergentes
-
DAO (Data Access Object)
-
-
-
-
Caso de uso: Clase UserDAO para gestionar usuarios en la BD (crear, leer, actualizar, borrar).
-
-
-
Cuándo usarlo: Siempre que tu aplicación interactúa con bases de datos y quieres una capa de acceso ordenada.
-
-
-
-
Patrones Creacionales
Factory Method
Propósito: Definir una interfaz para crear objetos, pero dejando a las subclases decidir qué clase concreta instanciar.
-
-
-
Caso de uso: Crear diferentes tipos de botones (WindowsButton, HTMLButton) desde una misma interfaz Button.
-
-
-
Cuándo usarlo: Cuando una clase no sabe qué tipo exacto de objeto debe crear o quieres delegar la decisión a subclases.
Abstract Factory
Propósito: Proporcionar una interfaz para crear familias de objetos relacionados sin especificar sus clases concretas.
-
Crea “familias” completas de productos (silla, mesa, sofá) coherentes entre sí.
-
Caso de uso: GUI multiplataforma: crear conjuntos de controles para Windows, macOS o Linux desde una misma fábrica.
-
-
-
Cuándo usarlo: Cuando necesitas crear objetos relacionados que siempre deben usarse juntos (misma familia o tema).
Builder
-
-
-
-
Caso de uso: Construir objetos “Pedido” con muchos campos opcionales (envío, facturación, cupones, etc.).
-
-
-
Cuándo usarlo: Cuando un objeto tiene muchas combinaciones de parámetros o requiere proceso de armado complejo.
Prototype
-
-
-
-
Caso de uso: Copiar diagramas, formas o elementos gráficos con misma configuración pero en otra posición.
-
-
-
-
Singleton
Propósito: Asegurar que una clase tenga solo una instancia global y proporcionar un punto de acceso único.
-
-
-
-
-
-
-
Cuándo usarlo: Cuando solo debe existir una instancia (configuración, conexión global, gestor de impresoras).