public class BooleanOption {
private String name;
private boolean value;
public BooleanOption(String name, boolean defaultValue) {
this.name = name;
this.value = defaultValue;
}
public String getName() {
return name;
}
public boolean getValue() {
return value;
}
public void setValue(boolean value) {
this.value = value;
}
}
public class OptionSet {
private List<BooleanOption> options;
public OptionSet() {
this.options = new ArrayList<>();
}
public void addOption(BooleanOption option) {
options.add(option);
}
public BooleanOption getOption(String name) {
for (BooleanOption option : options) {
if (option.getName().equals(name)) {
return option;
}
}
return null;
}
}
public class OptionManager {
private static OptionManager instance;
private OptionSet optionSet;
private OptionManager() {
this.optionSet = new OptionSet();
}
public static synchronized OptionManager getInstance() {
if (instance == null) {
instance = new OptionManager();
}
return instance;
}
public void setOption(String name, boolean value) {
BooleanOption option = optionSet.getOption(name);
if (option != null) {
option.setValue(value);
}
}
public boolean getOptionValue(String name) {
BooleanOption option = optionSet.getOption(name);
if (option != null) {
return option.getValue();
}
return false;
}
}
public class Main {
public static void main(String[] args) {
OptionManager optionManager = OptionManager.getInstance();
BooleanOption enableFeature = new BooleanOption("enableFeature", true);
optionManager.addOption(enableFeature);
optionManager.setOption("enableFeature", false);
boolean featureEnabled = optionManager.getOptionValue("enableFeature");
System.out.println("Feature enabled: " + featureEnabled);
}
}