Prendiamo il seguente Javascript, ma la lingua non è molto pertinente:
module.exports = (user) => {
return {
createPrimaryConfig: () => {
return new Config('a', 'b', user.getName());
},
createAlternativeConfig: () => {
return new Config('a', 'b', user.getName());
}
}
}
L'idea è che possono essere create diverse configurazioni per un dato oggetto (il lavoro di una fabbrica tradizionalmente?) e nella maggior parte dei casi, i sistemi riutilizzeranno alcune di queste ma vogliamo che la logica aziendale decida su come è costruita la configurazione (dall'oggetto utente) nascosto. Se la logica aziendale fosse più complicata, sarebbe più utile, ma questo semplice è forzato ed esagerato un po '.
Questo è ancora un metodo di fabbrica? In caso contrario, come lo chiameresti? Un metodo factory deve avere rigorosamente un metodo che restituisce un output? Cos'è che consente al chiamante di selezionare il tipo che desidera?