Разница между динамической переменной логического выражения и булевой функцией
Я столкнулся с этим сомнением: в чем разница между этими двумя способами получения логического значения? Конечный результат тот же, но каковы преимущества и недостатки использования одного или другого? Какой подход наиболее часто используется? Какова лучшая практика этого стиля кодирования?
Динамическая переменная логического выражения
...
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;
}