Ho codice lungo le seguenti linee:
public void processInput() {
List<String> input = readInput();
final Object[] returnObj = createInternalStructureFrom(input);
final Dictionary dictionary = (Dictionary) returnObj[0];
final List<Order> orderList = (List<Order>) returnObj[1];
final List<String> invalidInput = (List<String>) returnObj[2];
// some more code that processes the created objects
}
private Object[] createInternalStructureFrom(final List<String> input) {
// here is some code that creates objects along the lines of
// Dictionary dictionary = createDictionaryFrom(input);
// List<Order> orderList = createOrderListFrom(input);
// List<String> invalidInput = getInvalidInputFrom(input);
// but actually these methods can not be seperated
// and all objects are created simultaniously when the input is parsed
final Object[] returnObj = new Object[3];
returnObj[0] = dictionary;
returnObj[1] = orderList;
returnObj[2] = invalidInput;
return returnObj;
}
Quindi il metodo 'createInternalStructureFrom' restituisce una matrice di oggetti di tipi diversi che vengono quindi convertiti nel tipo corrispondente nel metodo del chiamante.
Questa è considerata una buona pratica in termini di scrittura di codice pulito? Quali sarebbero le alternative?