Quando si esegue Domain Driven Design si consiglia che i servizi siano senza stato. Esistono diversi tipi di servizi durante il DDD:
- Servizi applicativi.
- Servizi di dominio.
- Servizi di infrastruttura
- Fabbriche, archivi, specifiche, ecc.
Come faccio a rendere un servizio senza stato?
Significa che non dovrei avere alcuna variabile di istanza in una classe? C'è qualche indicazione su come rendere un servizio / classe apolide?
Potrei davvero utilizzare un esempio di codice che illustri la differenza tra un servizio stateful e stateless.
Esempio: (questa classe è di stato o no?)
Class DataToCsvFileGenerator{
private String filePath;
private ResultSet data;
public String createCsv(ResultSet data){
this.data=data;
this.createLocalFile();
this.loadDataIntoFile();
return this.filePath;
}
private void createLocalFile(){
this.filePath=//... logic to create file
}
private void loadDataIntoFile(){
//function uses this.filePath to load data
}
}
Tieni presente che eventuali chiamate successive a createCsv()
non saranno interessate da alcuna chiamata precedente.