# Patrones de diseño para Claude Code > Las decisiones generales de código están en [codigo.md](../decisiones/codigo.md). ## Cómo usar este archivo - Antes de implementar un patrón, consultar aquí si el proyecto ya definió cómo aplicarlo. - Si el patrón no está listado, proponerlo al usuario antes de implementarlo; no improvisar variantes. ## Patrones creacionales - **Factory Method / Abstract Factory** — cuándo usarlo, convención de nombres del proyecto. - **Builder** — para objetos con muchos parámetros opcionales (ver [codigo.md](../decisiones/codigo.md) sobre nombres claros). - **Singleton** — restringido a: (conexión a base de datos, configuración global). Motivo: evitar abuso como reemplazo de inyección de dependencias. ## Patrones estructurales - **Adapter** — para integrar librerías externas sin acoplar el resto del código. - **Facade** — para exponer una interfaz simple sobre un subsistema complejo (ej. capa de acceso a datos). - **Repository** — patrón de acceso a datos si el proyecto usa base de datos; separar consultas de la lógica de negocio. ## Patrones de comportamiento - **Strategy** — cuando existan variantes intercambiables de un algoritmo. - **Observer** — para eventos o notificaciones entre componentes desacoplados. - **Chain of Responsibility** — para validaciones o middlewares en cadena. ## Patrones arquitectónicos (si aplica al stack) - **MVC / MVVM** — según el framework elegido en el stack tecnológico de [CLAUDE.md](../../CLAUDE.md). - **Capas (Controller-Service-Repository)** — separación entre entrada, lógica de negocio y persistencia. ## Registro de decisiones del proyecto - A medida que se elija un patrón concreto para un caso real del proyecto, documentar aquí: qué problema resuelve, dónde se aplicó, y por qué se descartaron alternativas.