Repaso
English

¿Cuándo encaja mejor Builder que Factory?

Opciones

  1. Cuando necesitas una de varias subclases elegida en ejecución
  2. Cuando un objeto tiene muchas partes opcionales que se montan paso a paso (Opción correcta)
  3. Cuando necesitas exactamente una instancia en todo el programa
  4. 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.

Términos clave

Practica esta pregunta en Repaso