我最近经历了一次代码审查,并坚决建议我将两种方法合并为一种。两种方法都是相同的,除了每个方法的调用外,其中一个方法不需要参数。将两种方法合并为一种
方法#1
private void updateCache(List<CategoryObject> objectList) {
ServiceApi serviceApi = getService();
if (serviceApi != null) {
try {
serviceApi.updateResources(objectList);
} catch (BusinessException e) {
log.error(e);
}
}
}
方法#2
private void registerCache() {
ServiceApi serviceApi = getService();
if (serviceApi != null) {
try {
serviceApi.registerCategory(CATEGORY_NAME);
} catch (BusinessException e) {
log.error(e);
}
}
}
能这些甚至被有效地结合起来?
如果我要重构这两种方法,我会让它们不同。他们的意图是不同的,所以为了可读性,方法名称应该反映这一点。但是我会改变这两种方法的共同部分:错误处理。如果服务不存在或抛出BusinessException,调用方不会收到任何通知。我有serviceApi == null的情况下,并且BusinessException抛出一些方法,所以你的调用者被告知。 –
*坚决建议* :) – OldCurmudgeon