Esiste un modo più pulito / leggibile per mantenere e iterare molti più mapping anziché più condizioni if? (Un modo sarebbe memorizzare la mappatura di ReportType - > DataSet Req. nel database)
Ad esempio, se esiste un'applicazione che dipende dai "report selezionati", genera report che utilizzano i dati delle tabelle del database richieste. Qualcosa come questo:
Daquandoidatidarecuperareinquestetabellesonoenormiecondivisiperpiùrapporti,siamoarrivaticonunnoncosìbelloapproccioperottimizzarelafunzionegetDatausandoif()condizionicomequesta:
getDataForRequiredReports(ListrequiredReports){Map<String,Object>dataMap;if(requiredReports.contains(ReportB))dataMap.add(newEntry("marketData", DAOlayer.get("MarketData")));
if(requiredReports.contains(ReportA) || requiredReports.contains(ReportB) || requiredReports.contains(ReportE))
dataMap.add(newEntry("pastData", DAOlayer.get("PastData")));
if(requiredReports.contains(ReportC) || requiredReports.contains(ReportD) || requiredReports.contains(ReportE))
dataMap.add(newEntry("manualData", DAOlayer.get("ManualData")));
if(requiredReports.contains(ReportC) || requiredReports.contains(ReportE))
dataMap.add(newEntry("mlOutputData", DAOlayer.get("MLOutputData")));
return dataMap;
}