Sto scrivendo una libreria Java che deve rendere http GET & & Richieste POST. Ci saranno due tipi di utenti di questa libreria:
- Quelli con la comprensione dei callback e sanno come usarli.
- Quelli che .... non.
Quindi considera i seguenti due metodi:
public void methodWithCallback(ServiceCallback callback) {
try {
// GET && POST code that cannot really be abstracted to a separate method
} catch (IOException e) {
callback.onError(e);
callback = null;
}
callback.onSuccess(response);
callback = null;
}
public Response methodWithoutCallback() throws IOException {
try {
// again, GET && POST code that cannot really be abstracted to a separate method
} catch (IOException e) {
logger.log(e);
throw e;
}
return response;
}
Il codice precedente mi sembra sporco, principalmente perché ha duplicazione del codice per inviare la richiesta. Inoltre, se scrivessi un sacco di metodi del genere, il mio codice sarà molto presto raddoppiato a spaghetti difficilmente gestibili.
Ho preso in considerazione di consentire al client di impostare una richiamata fornendo un metodo come setCallback(Callback callback)
e quindi avere un generale method
che notifica il callback se NON è null. Ma anche questo sembra sporco perché scriverei un lotto di if null
assegni!
Cosa ne pensi? Quale sarebbe il modello di design desiderabile qui che consiglieresti?