Java 8, как исходя из значения некоторой переменной определить принцип работы части кода?
Представим у нас есть программа, которая при запуске читает конфиг и устанавливает внутри себя параметры. у нас есть boolean переменная в конфиге, в зависимости от значения которой программа определяет какую функцию использовать. это можно решить через абстрактный класс и двух его классов реализующих, вызывая в них функцию, но может есть более изящный подход? чтобы не каждый раз проверять эту переменую, а вообще выбросить её, чтобы функция вырбалась изходя из значения перемнной раз и навсегда
Ответы (1 шт):
Проверяйте опцию один раз при старте приложения:
interface MyFunction() {
void f();
}
class OptionEnabled implements MyFunction {
public void f() {
// реализация для варианта, когда опция включена
}
}
class OptionDisabled implements MyFunction {
public void f() {
// реализация для варианта, когда опция выключена
}
}
// При старте программы выбираем функцию раз и навсегда
final MyFunction function = null;
if (optionEnabledInConfig()) {
function = new OptionEnabled();
} else {
function = new OptionDisabled();
}
// далее по коду используете function
function.f();
Естественно, интерфейс и классы нужно назвать, чтоб они отражали суть происходящего. Тут я назвал их абстрактно, так как они фигурируют в вопросе.