Quindi, abbiamo un ragazzo a cui piace scrivere metodi che prendono Oggetti come parametri, in modo che possano essere "molto flessibili". Quindi, internamente, esegue direttamente il casting, la riflessione o il sovraccarico del metodo per gestire i diversi tipi.
Ritengo che questa sia una cattiva pratica, ma non so spiegare perché, a parte il fatto che rende più difficile la lettura. Ci sono altre ragioni più concrete per cui questa sarebbe una cattiva pratica? Cosa sarebbero questi?
Quindi, alcune persone hanno chiesto un esempio. Ha un'interfaccia definita, qualcosa come:
public void construct(Object input, Object output);
E ha intenzione di usarli inserendone diversi in una lista, in modo da creare dei bit e aggiungerli all'oggetto di output, in questo modo:
for (ConstructingThing thing : constructingThings)
thing.construct(input, output);
return output;
Quindi, nella cosa che implementa construct
, c'è una cosa di riflessione sgangherata che trova il metodo giusto che corrisponde all'ingresso / uscita e lo chiama, passando l'input / output.
Continuo a dirglielo, funziona, capisco che funzioni, ma così mette tutto in una singola classe. Stiamo parlando di riutilizzo e manutenibilità, e penso che in realtà si sta costringendo e ha meno riutilizzo di quello che pensa. La manutenibilità, anche se probabilmente alta per lui in questo momento, sarà probabilmente molto bassa per lui e per chiunque altro in futuro.