Задать вопрос
abler98
@abler98
Software Engineer

Немного о правильности написания кода. Какой вариант выбрать?

Допустим, имеется такой обработчик нажатий:
@Override
    public void onButtonClick() {
        if (isRequested()) {
            if (rulesField.isChecked()) {
                register(numberField.getText().toString(), codeField.getText().toString());
            } else {
                showMessage(R.string.error_rules);
            }
        } else {
            requestRegister(numberField.getText().toString());
        }
    }


Вроде ведь ничего плохого, но знакомые не особо такое воспринимают. В чём же здесь проблема?

Предлагали такой вариант:
@Override
    public void onButtonClick() {
        if (isRequested() && rulesField.isChecked()) {
            register(numberField.getText().toString(), codeField.getText().toString());
            return;
        }
        if (isRequested() && !rulesField.isChecked()) {
            showMessage(R.string.error_rules);
            return;
        }
        if (!isRequested()) {
            requestRegister(numberField.getText().toString());
        }
    }


Как по вашему мнению лучше писать? Или вообще без разницы?

P.S. #1: Привёл пример небольшой конструкции, условий может быть больше.
P.S. #2: Вопрос может и глупый, но меня он почему-то беспокоит :)
  • Вопрос задан
  • 401 просмотр
Подписаться 1 Оценить Комментировать
Ответ пользователя Tiberal К ответам на вопрос (4)
@Tiberal
то, что предложили хуже

isRequested() = false -> 3 раза дернется if

в вашем случае один раз

ну и второй вариант плохочитаем

если совсем много вложений switch в помощь
Ответ написан