Diciamo che ho un set di oggetti,
foo f;
bar br;
baz bz;
Ho anche una stringa di dati JSON,
string JSONstring;
A seconda del tipo di oggetto della stringa JSON, ho bisogno di trasformarlo in foo, bar o baz. Ok, bello, avrò un metodo per questo.
public object parseJSONToFooBarBaz(string jsonString);
Quello che voglio evitare è scrivere qualcosa come:
map<string, object> topLevelJSON = deserialized json string;
if(map[foo] != null) return new foo(jsonString);
else if(map[bar] != null) return new bar(jsonString);
...
// And the list balloons up and is difficult to maintain
Credo che questo sia un buon condiscendente o quasi un buon candidato per un modello di fabbrica, ma qualcosa non sembra giusto. C'è una soluzione semplice che sto trascurando, o un insieme di condizioni o un interruttore / caso davvero un modo OK per risolvere questo?