Anotei essa no caderno depois de errar numa entrevista de verdade. Hoje ela vive no meu baralho de SOLID & Design Patterns. Abaixo, a resposta como eu daria agora.
A resposta, como você fala na entrevista
A function/class that CREATES objects without exposing the creation logic. You say WHAT you want; it decides HOW to build it.
Use when: creating different objects based on a condition, and the caller shouldn't care about the details.
Ler é fácil. Falar isso em inglês, sob pressão, com alguém avaliando, é outra história. No VagaGringa esse tópico vira flashcard com repetição espaçada, cai em quiz e entra no simulado.
Treinar este tópico no app