【发布时间】:2015-03-04 06:58:32
【问题描述】:
Below Method 的圈复杂度为 13 我遵循一些使用三元运算符的方法来处理小的 if else,但对于长代码,最好的方法是什么 如果其他条件或任何其他方式降低圈复杂度,因为 sonarQube 显示圈复杂度错误,使用什么设计模式来拯救。 我是新手帮助我了解这个过程
@RequestMapping(value = "/submitUser", method=RequestMethod.POST)
public String submitUser(@ModelAttribute User userBean,Locale locale, RedirectAttributes redirectAttributes, HttpSession session, Model model) {
boolean status = false, isAdd = false;
String imagePath = "", task = "";
isAdd = userBean.getAdd();
/*if(isAdd) {
task = "add";
} else { // replace this by task=isAdd?"add":"edit";
task = "edit"; //
}*/
GlobalLogger.logApplicationDebugLog("Received request to " + task + " user ", LOGGER);
if (session != null && session.getAttribute("UserImagePath") != null) {
imagePath = session.getAttribute("UserImagePath").toString();
}
int currentUserId = Integer.parseInt(session.getAttribute(SessionKeyConstants.USER_ID).toString());
try {
status = iuser.submitUser(userBean, imagePath,currentUserId);
if(isAdd) {
if (status) {
GlobalLogger.logInfoLog("User "+userBean.getUserName()+" has been " + task + "ed successfully", LOGGER);
redirectAttributes.addFlashAttribute("successMsg", messageSource.getMessage("operationMsg.addUserSuccess", new String[] {userBean.getEmpEmail()}, locale));
return "redirect:/users.action";
} else {
GlobalLogger.logApplicationDebugLog("Error in adding user "+userBean.getUserName(), LOGGER);
redirectAttributes.addFlashAttribute("errorMsg", messageSource.getMessage("operationMsg.addUserFailure", new String[] {}, locale));
redirectAttributes.addFlashAttribute("isAdd", isAdd);
redirectAttributes.addFlashAttribute("userBean", userBean);
return "redirect:/addUser.action?isAdd=true";
}
} else {
if (status) {
GlobalLogger.logInfoLog("User "+userBean.getUserName()+" has been " + task + "ed successfully", LOGGER);
redirectAttributes.addFlashAttribute("successMsg", messageSource.getMessage("label.addSuccessMsg", new String[] {userBean.getFirstName()}, locale));
return "redirect:/users.action";
} else {
GlobalLogger.logApplicationDebugLog("Error in adding user "+userBean.getUserName(), LOGGER);
redirectAttributes.addFlashAttribute("errorMsg", messageSource.getMessage("label.addFailedMsg", new String[] {userBean.getFirstName()}, locale));
redirectAttributes.addFlashAttribute("isAdd", isAdd);
redirectAttributes.addFlashAttribute("userBean", userBean);
return "redirect:/addUser.action?isAdd=false";
}
}
} catch (UserException e) {
GlobalLogger.logApplicationDebugLog("User Name or Employee Id exists for user "+userBean.getUserName(), LOGGER);
redirectAttributes.addFlashAttribute("userBean", userBean);
redirectAttributes.addFlashAttribute("errorMsg", messageSource.getMessage(e.getErrorcode(), new String[] {}, locale));
return "redirect:/addUser.action?isAdd=true";
}
}
【问题讨论】:
-
@assylias 我无法理解,您能否通过查看我发布的上述代码来帮助我
标签: java performance design-patterns cyclomatic-complexity