public String login2() { if (param_user.getUsername().equals("ADMIN")) { User db_user = userDao.findByUserName(param_user.getUsername()); if (db_user != null) { boolean login_result = db_user.login(param_user); if (login_result) { session.setAttribute("userid", param_user.getUsername()); return LOGIN_SUCC; } else { return PASSWORD_ERROR; } } else { return USER_NOT_EXIST; } } else { return NOT_ALLOW_LOGIN; } }
这是一个标准的login流程,现在在工作中也看到好多人这样写。是的,这段代码并没有什么问题,但是缩进的层次太多了,如果每个if,else里面需要进行很多操作的话,那会使看代码的人头晕目眩,如果使用一下代码:
public String login1() { if (!param_user.getUsername().equals("ADMIN")) return NOT_ALLOW_LOGIN; User db_user = userDao.findByUserName(param_user.getUsername()); if (db_user == null) return USER_NOT_EXIST; boolean login_result = db_user.login(param_user); if (!login_result) return PASSWORD_ERROR; session.setAttribute("userid", param_user.getUsername()); return LOGIN_SUCC; }
效果和第一段代码一样,但是代码的缩进少了很多,增加了代码的可读性。