Java 代码优化:使用高阶函数消除重复代码 (lambda 示例)
可以将重复的代码提取出来,形成一个函数,然后通过传递不同的参数来实现不同的功能。可以使用高阶函数来实现这个功能。
首先,我们可以创建一个函数来处理重复的代码:
private List<Appraisee> findAppraisees(AppraiseesConfig appraiseesConfig, Long activityId, Function<String, List<Appraisee>> findAppraiseesByEmpGroup, String empGroupId) {
return unionAllRelationAppraisees(appraiseesConfig.getAppraisees(activityId),
(g) -> findAppraiseesByEmpGroup.apply(g, activityId), empGroupId);
}
然后,我们可以使用这个函数来消除重复代码:
switch (examineDataSource) {
case BASE_DATA:
return findAppraisees(appraiseesConfig, activityId, this::findExamineBasicByEmpGroup, empGroupId);
case EXAMINER_APPRAISEES_DATA:
return findAppraisees(appraiseesConfig, activityId, this::findEvaluationAppraiseesByEmpGroup, empGroupId);
default:
break;
}
这样,我们就使用高阶函数消除了重复代码,并且通过传递不同的函数参数,实现了不同的功能。
原文地址: https://www.cveoy.top/t/topic/qDEx 著作权归作者所有。请勿转载和采集!