Sto sviluppando un convertitore da oggetti di domini diversi, che accetta entrambi, convertendo un oggetto in un altro o un elenco in un altro elenco. Si prega di considerare il seguente esempio:
public MyObject2 decode(MyObject1 originalObject) {
String name = String.valueOf(originalObject.getId());
return MyObject2(name);
}
public List<MyObject2> decodeList(Collection<MyObject1> originalObjectsList) {
return originalObjectsList.stream().map(this::decode).collect(Collectors.toList());
}
La mia situazione è molto più complessa di questa, ma per amor di discussione è sufficiente.
Nel mio team, siamo venuti con il dubbio su ciò che dovrebbe essere migliore in termini di progettazione del software e futura comprensione del codice. Preferisci il metodo decodeList()
con questa firma esatta, oppure modificalo in overload decode()
.
Per me è difficile da dire, perché entrambi sembrano giusti. Il sovraccarico sembra più pulito, ma per me ha senso anche decodeList()
se consideri che ripetere lo stesso processo più volte merita di essere trattato come una cosa diversa.
Esistono buone pratiche relative a questo tipo di situazione?