Ad esempio, supponiamo di avere questa meravigliosa interfaccia:
public interface BestService {
public String whoIsAGoodService(String serviceName);
}
Per quanto riguarda l'implementazione, possiamo trovare il seguente metodo:
@Override
public String whoIsAGoodService(String serviceName) {
String ipFromName = this.findOutIpFromName(serviceName);
boolean isItReallyGood = this.findOutGoodService(ipFromName);
String intermediateResponse = this.findOutGoodServiceMessage(isItReallyGood);
String finalResponse = this.buildFinalResponse(intermediateResponse);
return finalResponse;
}
La domanda non riguarda la qualità del codice (1) . La mia domanda è:
È considerata una buona o cattiva pratica mantenerli nella classe ServiceImpl? Oppure dovremmo creare una classe chiamata BestServiceLogic
per gestire tutti quei processi? Vorrei alcune informazioni su ciò che è considerato una buona pratica. Il mio punto di vista sarebbe che tende a rendere le classi di implementazione del servizio molto lunghe, raggruppando tutti i sottoprogrammi per tutti i metodi che vengono chiamati dal client. Ma vorrei alcuni obiettivi su questo.
Per qualche contesto. Sto riscrivendo il codice precedente (2) e vorrei trovare il modo migliore per mantenere le cose pulite e chiare a lungo termine.
Ho già letto su questa domanda ma tratta di più sull'iniezione di classe rispetto al metodo di invio attraverso le classi.
(1) So che potrei restituire direttamente il risultato di finalResponse
e non so se usare this.method()
per chiamare i membri privati come una cosa buona o cattiva (se vuoi illuminarmi su quest'ultimo, tuttavia, sarei lieto). È un esempio arbitrario e al volo.
(2) non preoccuparti non , non romperò nulla, scrissi prima i test.