可以将重复的代码提取出来,将不同的部分作为参数传入。可以尝试如下的优化:

switch (examineDataSource) {
    case BASE_DATA:
        return unionAllRelationAppraisees(findExamineBasicAppraisees(appraiseesConfig, activityId),
            (g) -> findExamineBasicByEmpGroup(g, activityId), empGroupId);
    case EXAMINER_APPRAISEES_DATA:
        return unionAllRelationAppraisees(findEvaluationAppraisees(appraiseesConfig, activityId),
            (g) -> findEvaluationAppraiseesByEmpGroup(g, activityId), empGroupId);
    default:
        break;
}

private ReturnType unionAllRelationAppraisees(List<Appraisee> appraisees, Function<String, List<Appraisee>> findAppraiseesByEmpGroup, String empGroupId) {
    // 其他代码逻辑
    // ...
    return returnType;
}

private List<Appraisee> findExamineBasicAppraisees(AppraiseesConfig appraiseesConfig, String activityId) {
    // 具体实现
    // ...
    return appraisees;
}

private List<Appraisee> findExamineBasicByEmpGroup(String empGroupId, String activityId) {
    // 具体实现
    // ...
    return appraisees;
}

private List<Appraisee> findEvaluationAppraisees(AppraiseesConfig appraiseesConfig, String activityId) {
    // 具体实现
    // ...
    return appraisees;
}

private List<Appraisee> findEvaluationAppraiseesByEmpGroup(String empGroupId, String activityId) {
    // 具体实现
    // ...
    return appraisees;
}

通过将相同的代码提取出来,然后根据参数的不同来调用不同的方法,可以减少代码冗余,并提高代码的可读性和可维护性。

Java 代码优化:提取重复代码,提高可读性和可维护性

原文地址: https://www.cveoy.top/t/topic/qDEu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录