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ño80 XP8 min

Factory Method: El Constructor Virtual

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

Por qué importa

Cuando dispersas new CSVParser() y new JSONParser() por toda la base de código, atas al cliente a nombres de clases concretas. Cada vez que llega un nuevo formato, debes buscar cada bloque if tipo == "csv". El patrón Factory Method define una interfaz para la creación pero deja que las subclases —o una función de fábrica— decidan qué clase concreta instanciar. Agregar un nuevo tipo no toca ningún código existente.

Cuándo usarlo — y cuándo no

Usa Factory Method cuando una clase no puede anticipar el tipo de objetos que necesita crear, o cuando quieres que las subclases controlen la creación. Evítalo cuando solo tienes una implementación concreta — añade indirección sin beneficio.

💡Conclusión clave

Reemplaza los bloques dispersos if tipo == X: crear X con una única fábrica — agregar nuevos tipos requiere escribir código nuevo, nunca modificar el código existente.

🔧 Algunos ejercicios pueden tener errores. Si algo parece incorrecto, usa el botón Feedback (abajo a la derecha) para reportarlo — nos ayuda a corregirlo rápido.

Pista: Si te encuentras escribiendo 'if tipo == X: crear X' en múltiples lugares, necesitas un Factory Method.

✗ Tu versión