Если у вас нет глупых правил о множественных точках возврата, я думаю, что это довольно хорошо (как и кто-то другой, но они удалили свой ответ по неизвестным причинам):
if(!condition1)
{
log("condition1 failed");
return false;
}
if(!condition2)
{
log("condition2 failed");
return false;
}
if(!condition3)
{
log("condition3 failed");
return false;
}
return true;
Возможно, это равносильно отвращению к супер-вложению, но это, безусловно, чище, чем его хрень, хранящая логические условия в определенных значениях. Тем не менее, он может быть менее читабельным в контексте: подумайте, было ли одно из условий isreadable()
. Проще сказать if(isreadable())
, потому что мы хотим знать, является ли что-то читаемым. if(!isreadable())
предлагает, если мы хотим знать, не читаем ли он, что не является нашим намерением. Это, конечно, спорно, что может возникнуть ситуации, когда один является более удобным для чтения / понятнее, чем другие, но я фанат этого пути самого. Если кто-то зацикливается на возврате, вы можете сделать это:
if(!condition1)
log("condition1 failed");
else if(!condition2)
log("condition2 failed");
else if(!condition3)
log("condition3 failed");
else
return true;
return false;
Но это довольно закулисно и менее "ясно", на мой взгляд.