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();
启动应用程序时检查一次选项:
自然地,需要命名接口和类,以便它们反映正在发生的事情的本质。在这里,我抽象地命名了它们,因为它们出现在问题中。