Альтернативы встроенным операторам if?JAVA

Программисты JAVA общаются здесь
Anonymous
Альтернативы встроенным операторам if?

Сообщение Anonymous »

У меня есть опыт программирования, но не большой опыт разработки программного обеспечения. В настоящее время я пишу программное обеспечение для компании, в которой работаю, и мне нужно проверить читаемость моего кода.

Я хочу знать является ли это «действительной» альтернативой встроенным операторам if, или есть что-то лучшее, что я мог бы использовать.

Предположим, у меня есть следующий метод:

Код: Выделить всё

public void someMethod()
{
if (some condition)
{
if (some condition 2)
{
if (some condition 3)
{
// ...etc all the way until:
doSomething();
}
else
{
System.err.println("Specific Condition 3 Error");
}
}
else
{
System.err.println("Specific Condition 2 Error");
}
}
else
{
System.err.println("Specific Condition 1 Error");
}
}
Теперь первое, что я должен отметить, это то, что в этом случае объединение условий (с &&) невозможно, поскольку каждое из них имеет уникальную ошибку, которую я хочу сообщить, и если бы я объединил их, я бы не смог этого сделать (или смог бы?). Второе, на что я должен обратить внимание, прежде чем кто-нибудь закричит «SWITCH STATEMENT!» меня беспокоит то, что не все эти условия можно обработать с помощью оператора переключения; некоторые из них — вызовы методов, специфичных для объекта, некоторые — целочисленные сравнения и т. д.

Тем не менее, является ли следующий действительный способ сделать приведенный выше код более читабельным, или есть ли другой способ сделать приведенный выше код более читабельным? лучший способ сделать это?

Код: Выделить всё

public void someMethod()
{
if (!some condition)
{
System.err.println("Specific Condition 1 Error");
return;
}

if (!some condition 2)
{
System.err.println("Specific Condition 2 Error");
return;
}

if (!some condition 3)
{
System.err.println("Specific Condition 3 Error");
return;
}

doSomething();
}
По сути, вместо проверки условий и сообщения об ошибках в блоках else мы проверяем обратное условие и возвращаем значение, если оно истинно. Результат должен быть тот же, но есть ли лучший способ справиться с этим?

Подробнее здесь: https://stackoverflow.com/questions/844 ... statements

Вернуться в «JAVA»