TypeScript Design Patterns
Este repositorio es una colección estructurada de ejemplos prácticos y limpios para comprender e implementar los patrones de diseño clásicos definidos por la Gang of Four (GoF). Todo el código está desarrollado con TypeScript, maximizando el tipado estricto y el cumplimiento riguroso de los principios SOLID.
¿Qué problema resuelve?
Muchas veces los desarrolladores implementan soluciones “ad-hoc” que terminan convirtiéndose en código rígido, acoplado y difícil de mantener o extender. Los patrones de diseño proveen plantillas probadas y optimizadas para resolver problemas comunes en el desarrollo de software.
Este proyecto ejemplifica patrones como Singleton, Factory, Observer, Strategy, Decorator y Adapter aplicados a casos reales simulados (procesadores de pago, sistemas de logs, notificaciones multi-canal, etc.).
Decisiones Técnicas
- Interfaces y Tipos Avanzados: Uso intensivo de polimorfismo, genéricos en TypeScript y clases abstractas para evitar el acoplamiento directo entre clases concretas.
- Principio Open/Closed: Los patrones implementados demuestran cómo inyectar nuevas funcionalidades al sistema (ej. un nuevo procesador de pagos) sin alterar el código existente.
- Inyección de Dependencias: Diseño desacoplado para facilitar la sustitución de módulos en build-time o durante las pruebas unitarias.