Un constructor returnează întotdeauna o instanță complet nouă a clasei sale exacte, cu un nume fixat la clasă. O metodă factory este o metodă obișnuită (adesea statică) care creează obiecte — oferindu-ți libertate asupra denumirii, care subtip să returnezi, și dacă să creezi deloc un nou obiect.
