Skip to main content

Inicia sesión en CleanKata

Sigue tu progreso, gana XP y desbloquea todas las lecciones.

Al iniciar sesión aceptas nuestros Términos de uso y Política de privacidad.

Patrones de Diseño

Soluciones reutilizables para problemas comunes de diseño de software.

23 lecciones

Abstract Factory: Familias de Objetos

Crea familias de objetos relacionados sin especificar sus clases concretas — garantiza compatibilidad entre productos de la misma familia.

Ganar +80 XP8 min

Adapter: El Traductor de Interfaces

Hace que interfaces incompatibles trabajen juntas — envuelve una clase antigua o externa detrás de la interfaz que tu sistema espera sin modificar ninguno de los lados.

Ganar +70 XP7 min

Bridge: Desacoplando la Abstracción

Divide una clase grande en dos jerarquías independientes — abstracción e implementación — para que ambas evolucionen sin afectarse mutuamente.

Ganar +80 XP8 min

Builder: Construcción Paso a Paso

Construye objetos complejos paso a paso — el mismo proceso de construcción puede producir diferentes representaciones usando una interfaz fluida.

Ganar +80 XP7 min

Cadena de Responsabilidad

Pasa una solicitud a lo largo de una cadena de manejadores — cada uno decide procesarla o pasarla al siguiente, desacoplando emisor de receptor.

Ganar +80 XP8 min

Command: Encapsulando Peticiones

Transforma una petición en un objeto autónomo — habilitando deshacer/rehacer, colas, registro y ejecución diferida de operaciones.

Ganar +80 XP8 min

Composite: Estructuras en Árbol

Compone objetos en estructuras de árbol y trata objetos individuales y grupos de forma uniforme — itera un sistema de archivos igual sea un archivo o una carpeta.

Ganar +80 XP8 min

Decorator: Añadiendo Superpoderes

Añade comportamiento a objetos dinámicamente envolviéndolos — compón capacidades en lugar de crear una explosión de subclases.

Ganar +80 XP9 min

Facade: La Cara Amigable del Sistema

Proporciona una interfaz simplificada a un subsistema complejo — oculta el caos detrás de un único punto de entrada limpio sin eliminar la complejidad para quienes la necesitan.

Ganar +70 XP6 min

Factory Method: El Constructor Virtual

Delega la creación de objetos a las subclases — desacopla al cliente de las clases concretas que instancia.

Ganar +80 XP8 min

Flyweight: Compartir para Ahorrar Memoria

🔒

Cabe más objetos en RAM compartiendo estado común — separa datos intrínsecos (compartidos) de extrínsecos (únicos) para evitar duplicar objetos pesados.

Requiere 25 XP para desbloquear8 min

Iterator: Recorriendo Colecciones

🔒

Recorre elementos de cualquier colección sin exponer su estructura interna — el cliente nunca necesita saber si es una lista, árbol o grafo.

Requiere 50 XP para desbloquear8 min

Mediator: Comunicación Centralizada

🔒

Restringe la comunicación directa entre objetos — fuerza la colaboración a través de un mediador para reducir dependencias caóticas muchos-a-muchos.

Requiere 75 XP para desbloquear8 min

Memento: Deshacer con Instantáneas

🔒

Captura y restaura el estado interno de un objeto sin violar la encapsulación — implementa Deshacer almacenando instantáneas de estados pasados.

Requiere 100 XP para desbloquear8 min

Observer: El Sistema de Suscripciones

🔒

Permite que los objetos se suscriban a eventos y sean notificados automáticamente — desacopla los productores de eventos de los consumidores sin que ninguno sepa del otro.

Requiere 125 XP para desbloquear9 min

Prototype: Clonación de Objetos

🔒

Copia objetos existentes sin depender de sus clases — clona configuraciones complejas en lugar de reconstruirlas desde cero.

Requiere 150 XP para desbloquear8 min

Proxy: El Intermediario de Control

🔒

Proporciona un sustituto que controla el acceso a otro objeto — úsalo para carga perezosa, control de acceso, registro o caché sin cambiar el objeto real.

Requiere 175 XP para desbloquear8 min

Patrón Repository

🔒

Abstrae el acceso a datos detrás de una interfaz para que la lógica de negocio nunca sepa si los datos vienen de una base de datos, caché o API — y las pruebas se convierten en un simple cambio.

Requiere 200 XP para desbloquear10 min

Singleton: La Instancia Única

🔒

Asegura que una clase tenga solo una instancia y proporciona un punto de acceso global — pero el abuso crea estado global oculto y dificulta las pruebas.

Requiere 225 XP para desbloquear6 min

State: Comportamiento Basado en Estado

🔒

Permite que un objeto altere su comportamiento cuando su estado interno cambia — reemplaza los condicionales de estado con objetos de estado polimórficos.

Requiere 250 XP para desbloquear8 min

Strategy: Intercambio de Algoritmos

🔒

Define una familia de algoritmos, encapsula cada uno en su propia clase y hazlos intercambiables en tiempo de ejecución — elimina los condicionales seleccionando el comportamiento mediante composición.

Requiere 275 XP para desbloquear8 min

Template Method: Esqueleto del Algoritmo

🔒

Define el esqueleto de un algoritmo en una superclase, pero permite a las subclases sobrescribir pasos específicos sin cambiar su estructura.

Requiere 300 XP para desbloquear8 min

Visitor: Nuevas Operaciones Sin Cambiar Clases

🔒

Añade nuevas operaciones a una jerarquía de objetos sin modificar las clases — el visitor porta la operación, los elementos simplemente la aceptan.

Requiere 325 XP para desbloquear8 min