Java Code Optimization: Extracting Common Code for Improved Reusability
You can extract the common code from the above methods into a separate method. Here's an example:
private ComputeResultExportDTO createComputeResultExportDTO(String empCode, String empName, String levelName, String levelGroup,
String deptName, String scoreItemId, String tableName, String tableSort,
BigDecimal levelWeight, BigDecimal assessScore) {
final ComputeResultExportDTO computeResultExportDTO = new ComputeResultExportDTO();
computeResultExportDTO.setEmpCode(empCode);
computeResultExportDTO.setEmpName(empName);
computeResultExportDTO.setLevelName(levelName);
computeResultExportDTO.setLevelGroup(levelGroup);
computeResultExportDTO.setDeptName(deptName);
computeResultExportDTO.setScoreItemId(scoreItemId);
computeResultExportDTO.setTableName(tableName);
computeResultExportDTO.setTableSort(tableSort);
computeResultExportDTO.setLevelWeight(levelWeight);
computeResultExportDTO.setAssessScore(assessScore);
return computeResultExportDTO;
}
private ComputeResultExportDTO getLevelSubtotalData(final String levelName, final StatisticsResultDTO statisticsResultDTO) {
return createComputeResultExportDTO(statisticsResultDTO.getEmpCode(), statisticsResultDTO.getEmpName(), LEVEL_SUBTOTAL, levelName,
statisticsResultDTO.getDeptName(), statisticsResultDTO.getScoreItemId(), statisticsResultDTO.getTableName(),
statisticsResultDTO.getTableSort(), statisticsResultDTO.getLevelWeight(), statisticsResultDTO.getCalculationResultValue());
}
private ComputeResultExportDTO getComputeResultExportDTO(final String evaluationId, final String empNameAndCode,
final Map<String, BigDecimal> overallEvaluationScoreDict,
final Map<String, List<SuggestedLevelStatisticsDTO>> summaryGroup,
final StatisticsResultDTO statisticsResultDTO) {
final ComputeResultExportDTO computeResultExportDTO = createComputeResultExportDTO(statisticsResultDTO.getEmpCode(), statisticsResultDTO.getEmpName(),
COMPREHENSIVE_EVALUATION, COMPREHENSIVE_EVALUATION,
statisticsResultDTO.getDeptName(), statisticsResultDTO.getScoreItemId(),
statisticsResultDTO.getTableName(), statisticsResultDTO.getTableSort(),
statisticsResultDTO.getLevelWeight(), statisticsResultDTO.getCalculationResultValue());
computeResultExportDTO.setExamineEvaluationId(evaluationId);
computeResultExportDTO.setTotalScore(overallEvaluationScoreDict.get(empNameAndCode));
computeResultExportDTO.setSuggestedLevel(getSuggested(summaryGroup.get(empNameAndCode)));
return computeResultExportDTO;
}
private ComputeResultExportDTO getComputeResultExportDTO(final Map<String, BigDecimal> scoreItemIdKey, final String levelName,
final Map.Entry<String, StatisticsResultDTO> levelSubtotalValueMap) {
final StatisticsResultDTO calculationResultDTO = levelSubtotalValueMap.getValue();
final ComputeResultExportDTO computeResultExportDTO = createComputeResultExportDTO(calculationResultDTO.getEmpCode(), calculationResultDTO.getEmpName(),
LEVEL_SUBTOTAL, levelName, null, calculationResultDTO.getScoreItemId(),
null, calculationResultDTO.getTableSort(), calculationResultDTO.getLevelWeight(),
calculationResultDTO.getCalculationResultValue());
computeResultExportDTO.setTotalScore(calculationResultDTO.getCalculationResultValue());
computeResultExportDTO.setScoreWight(scoreItemIdKey.get(levelSubtotalValueMap.getKey()));
return computeResultExportDTO;
}
private ComputeResultExportDTO getComputeResultExportDTO(final String levelName, final String evaluationId,
final StatisticsResultDTO levelOverallBigDecimal,
final StatisticsResultDTO statisticsResultDTO,
final Map<String, Map<String, List<SuggestedLevelStatisticsDTO>>> subtotalGroup) {
final ComputeResultExportDTO computeResultExportDTO = createComputeResultExportDTO(statisticsResultDTO.getEmpCode(), statisticsResultDTO.getEmpName(),
LEVEL_SUBTOTAL, levelName, null, statisticsResultDTO.getScoreItemId(),
null, statisticsResultDTO.getTableSort(), statisticsResultDTO.getLevelWeight(),
statisticsResultDTO.getCalculationResultValue());
computeResultExportDTO.setExamineEvaluationId(evaluationId);
computeResultExportDTO.setTotalScore(levelOverallBigDecimal.getCalculationResultValue());
computeResultExportDTO.setSuggestedLevel(getSuggested(subtotalGroup.get(statisticsResultDTO.getEmpCode()).get(levelName)));
return computeResultExportDTO;
}
Now you can reuse the createComputeResultExportDTO method in the other methods to avoid code duplication.
原文地址: https://www.cveoy.top/t/topic/lTXc 著作权归作者所有。请勿转载和采集!