Разница между динамической переменной логического выражения и булевой функцией

Я столкнулся с этим сомнением: в чем разница между этими двумя способами получения логического значения? Конечный результат тот же, но каковы преимущества и недостатки использования одного или другого? Какой подход наиболее часто используется? Какова лучшая практика этого стиля кодирования?
Динамическая переменная логического выражения

...
public class MainActivity extends AppCompatActivity {
    private boolean isVersionM = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
    ....
    private void onCreate(Bundle savedInstanceState) {
        ....
        if (isVersionM) {
            ...
        }
        else {
            ...
        }
        ...
    }
    ....
}

Булева функция

...
public class MainActivity extends AppCompatActivity {
    ....
    private void onCreate(Bundle savedInstanceState) {
        ....
        if (isVersionM()) {
            ...
        }
        else {
            ...
        }
        ...
    }
    ...
    private boolean isVersionM() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
    }
    ...
}

1 ответ

Решение

Это два способа сделать одну вещь. Но что, если у вас есть какое-то значение времени выполнения для расчета, вам понадобится второй способ.

Какова лучшая практика этого стиля кодирования

Во-вторых, потому что вам не нужно будет менять свой стиль для методов расчета времени выполнения, таких как метод ниже.

private boolean isUserLoggedIn() {
    return PreferenceManager.getString("token") != null;
}
Другие вопросы по тегам