Если вы просто реорганизуете свой код, вы не получите столько вложенных if
операторов.
Например, отмените условия.Вместо:
if (a) {
if (b) {
// code here
} else {
// ERROR
}
} else {
// ERROR
}
Переверните его и используйте конструкции else-if
:
if (! a) {
// ERROR
} else if (! b) {
// ERROR
} else {
// code here
}
Дополнительным преимуществом является то, что короткая логика «ОШИБКА» обрабатывается прямо рядом сif
условие, вместо того, чтобы появляться где-то намного ниже, где условие и действие были разделены слишком далеко друг от друга.
С вашим кодом это можно упростить следующим образом:
public void registerModule(HttpServletRequest req, ModuleType moduleType) {
LOGGER.debug("Register New Module - " + moduleType.name());
try {
ModuleEntityDao moduleEntityDao;
if (req.getParts().isEmpty() || req.getParameterMap().isEmpty()) {
LOGGER.error("The rest request is empty.No info to register");
} else if ((moduleEntityDao = new ModuleEntityGenerator().get(req, moduleType)) == null) {
LOGGER.error("The BA object is null. There is nothing to register");
} else if (processRegistryDal.getModule(moduleType, moduleEntityDao.getId()) == null) { // Check BA is not already exist
processRegistryDal.addNewModule(moduleEntityDao);
} else { // If already exists just update the current row
processRegistryDal.updateModule(moduleEntityDao);
}
} catch (IOException e) {
LOGGER.error("IO Error\n" + e.getMessage());
} catch (ServletException e) {
LOGGER.error("Servlet Error\n" + e.getMessage());
}
}