Factory pattern
Pattern creazionale della Gang of Four: la creazione degli oggetti esce dal client e passa a una «fabbrica», così il client non deve conoscere le classi concrete.
Esistono tre varianti: Simple Factory (un metodo statico restituisce le istanze), Factory Method (le sottoclassi decidono la classe) e Abstract Factory (famiglie di oggetti correlati). In Python __new__ può fare da factory; in Spring esiste il Bean Factory.
Il caso ideale: quando l'implementazione da creare dipende dalla configurazione a runtime. Anti-pattern: una factory che si limita a incapsulare un costruttore senza alcuna logica è solo indirezione inutile.