Primo stack SE,
Sto lavorando su una grande porzione del vecchio codice Java e sto trovando tonnellate di duplicati e oggetti configurati / creati in modo incoerente a causa di diversi autori, livelli di abilità, ecc.
Ho implementato alcuni modelli di factory statici e sto avendo un dibattito su come rendere configurabile la fabbrica.
MODIFICA: per suggerimenti di commenti,
Opzione A:
public final class TacoFactory {
private static int defaultCheese = 0;
private TacoFactory() {}
public static Taco createTaco(int cheese) {}
public static Taco createDefaultTaco() { createTaco(defaultCheese); }
public static synchronized void configure(int cheese) {
this.defaultCheese = cheese;
}
}
Opzione B:
public final class TacoFactory {
public static int defaultCheese = 0;
private TacoFactory() {}
public static Taco createTaco(int cheese) {}
public static Taco createDefaultTaco() { createTaco(defaultCheese); }
}
Opzione C: Qualche modo / modello elitario che google-fu deve ancora darmi. Se c'è qualche buona documentazione su questo modello, per favore condividi. :)
Opzione D: non importa e / o non è specificato.
Opzione E: Pattern Builder, anche se ho espresso le mie preoccupazioni sul motivo per cui non penso che questo si adatti al mio caso di uso sulla risposta che lo suggerisco di seguito.
class Taco {
private final int cheese;
private final int beef;
Taco(int cheese, int beef) {
this.cheese = cheese;
this.beef = beef;
}
}
class TacoBuilder {
private int cheese = 0;
TacoBuilder setCheese(int cheese) {
this.cheese = cheese;
return this;
}
TacoBuilder setBeef(int beef) {
this.beef = beef;
return this;
}
Taco build() {
return new Taco(a, b);
}
}
Foo foo = new FooBuilder().setA("a").build();