Please enable JavaScript.
Coggle requires JavaScript to display documents.
Patrones de Diseño (GoF) / Refactoring.Guru - Coggle Diagram
Patrones de Diseño (GoF) / Refactoring.Guru
Patrones Creacionales
🏭 Factory Method
Intención: Define un método para crear objetos y deja que las subclases decidan qué clase instanciar.
Analogía: Una empresa de logística que entrega por camión o por barco, cada transporte con su propia forma de entrega.
Caso técnico: Una app de logística que crea Camión o Barco según el tipo de ruta.
🏢 Abstract Factory
Intención: Crea familias de objetos relacionados sin especificar sus clases concretas.
Analogía: Una tienda de muebles que vende silla, sofá y mesa del mismo estilo (moderno o clásico).
Caso técnico: Una interfaz gráfica que genera botones y menús con aspecto Windows o Mac, según el sistema.
🧱 Builder
Intención: Construye objetos complejos paso a paso, con distintas configuraciones, usando el mismo proceso.
Analogía: Construir una casa por etapas (paredes, techo, puertas) con distintas opciones.
Caso técnico: Armar un objeto Pedido o Consulta SQL con muchos parámetros opcionales.
👑 Singleton
Intención: Garantiza que una clase tenga una única instancia con acceso global.
Analogía: Un país tiene un solo gobierno oficial, al que todos acceden.
Caso técnico: Una única conexión a la base de datos compartida por toda la aplicación.
Patrones Estructurales
🔌 Adapter
Intención: Permite que objetos con interfaces incompatibles trabajen juntos.
Analogía: Un adaptador de enchufe para usar tu cargador en otro país.
Caso técnico: Conectar una librería de pagos antigua a un sistema que espera otra interfaz.
🎁 Decorator
Intención: Añade funciones a un objeto envolviéndolo, sin modificar su clase.
Analogía: Ponerse capas de ropa (camiseta, suéter, chaqueta) según el clima.
Caso técnico: Añadir cifrado o compresión a un sistema de notificaciones.
🏛️ Facade
Intención: Ofrece una interfaz simple a un sistema complejo de clases.
Analogía: Hacer un pedido por teléfono, donde el operador gestiona tienda, pago y envío.
Caso técnico: Una clase que simplifica el uso de una librería de conversión de video.
🛡️ Proxy
Intención: Controla el acceso a otro objeto actuando como su sustituto.
Analogía: Una tarjeta de crédito, que sustituye al efectivo y controla el acceso a tu cuenta.
Caso técnico: Un proxy que guarda en caché las respuestas de un servicio web o valida permisos.
Patrones de Comportamiento
🎯 Strategy
Intención: Define una familia de algoritmos intercambiables en tiempo de ejecución.
Analogía: Para llegar al aeropuerto, eliges bus, taxi o bicicleta según el caso.
Caso técnico: Elegir la pasarela de pago (Stripe, PayPal) mientras la app corre.
📰 Observer
Intención: Avisa automáticamente a varios objetos cuando cambia el estado de otro.
Analogía: Suscripción a una revista: te llega cada vez que sale un número nuevo.
Caso técnico: Notificar a los usuarios suscritos cuando hay un nuevo mensaje o evento.
📝 Command
Intención: Convierte una petición en un objeto, para poder encolarla, registrarla o deshacerla.
Analogía: Un mesero anota tu pedido y lo pasa a la cocina.
Caso técnico: Implementar deshacer/rehacer en un editor de texto.
🔀 State
Intención: Cambia el comportamiento de un objeto según su estado interno.
Analogía: Los botones de un teléfono hacen cosas distintas si está bloqueado o desbloqueado.
Caso técnico: Un pedido que se comporta distinto en estado Pendiente, Pagado o Enviado.