¿Cuándo encaja mejor Builder que Factory?
Opciones
- Cuando necesitas una de varias subclases elegida en ejecución
- Cuando un objeto tiene muchas partes opcionales que se montan paso a paso (Opción correcta)
- Cuando necesitas exactamente una instancia en todo el programa
- Cuando hay que clonar objetos existentes en lugar de crearlos
Respuesta
Cuando un objeto necesita muchas partes opcionales montadas paso a paso
Por qué
Una Factory decide QUÉ tipo de objeto crear (por ejemplo make_notifier("sms") devuelve un SmsNotifier).
Un Builder se ocupa de CÓMO montar un objeto complejo paso a paso, cuando tiene muchos ajustes opcionales (por ejemplo una petición HTTP con headers, timeout, reintentos).
En Python, los keyword arguments con valores por defecto suelen reemplazar a los builders simples.
Recuerda
Factory = qué objeto. Builder = cómo montarlo.