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

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

...
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 Ответ

0 голосов
/ 20 ноября 2018

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

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

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

private boolean isUserLoggedIn() {
    return PreferenceManager.getString("token") != null;
}
...