Supponiamo di avere il seguente servizio la cui responsabilità è generare report Excel:
class ExcelReportService{
public String generateReport(String fileFormatFilePath, ResultSet data){
ReportFormat reportFormat = new ReportFormat(fileFormatFilePath);
ExcelDataFormatterService excelDataFormatterService = new ExcelDataFormatterService();
FormattedData formattedData = excelDataFormatterService.format(data);
ExcelFileService excelFileService = new ExcelFileService();
String reportPath= excelFileService.generateReport(reportFormat,formattedData);
return reportPath;
}
}
Questo è uno pseudo codice per il servizio che desidero progettare dove:
-
fileFormatFilePath
: percorso a un file di configurazione dove manterrò il formato del mio file excel (intestazioni, larghezza delle colonne, numero di colonne, .. ecc.) -
data
: i record effettivi restituiti dal database. Questo dato
non può essere usato direttamente coz Potrei aver bisogno di fare ulteriori calcoli ai dati prima di inserirli nel file excel. -
ReportFormat
: oggetto valore per contenere il formato del report, ha metodi
comegetHeaders()
,getColumnWidth()
, ... ecc. -
ExcelDataFormatterService
: un servizio per contenere qualsiasi logica necessaria essere applicato ai dati restituiti dal database prima di inserirlo al file. -
FormattedData
: oggetto valore che rappresenta i dati formattati da essere inserito.ExcelFileService
: un wrapper in cima alla libreria di terze parti che genera il file excel.
Come si determina se un servizio è un'infrastruttura o un servizio di dominio?
Ho i seguenti 3 servizi qui:
ExcelReportService
, ExcelDataFormatterService
e ExcelFileService
?