public interface Feature {
void enable();
void disable();
}
public class DayModeFeature implements Feature {
@Override
public void enable() {
}
@Override
public void disable() {
}
}
public class NightModeFeature implements Feature {
@Override
public void enable() {
}
@Override
public void disable() {
}
}
FeatureManager featureManager = new FeatureManagerBuilder()
.with(new DayModeFeature())
.with(new NightModeFeature())
.build();
featureManager.enableFeature(DayModeFeature.class);
featureManager.disableFeature(NightModeFeature.class);
if (featureManager.isEnabled(DayModeFeature.class)) {
} else if (featureManager.isEnabled(NightModeFeature.class)) {
} else {
}