public interface Option {
void apply();
}
public class Options {
private Map<String, Option> options = new HashMap<>();
public void addOption(String name, Option option) {
options.put(name, option);
}
public void applyOption(String name) {
Option option = options.get(name);
if (option != null) {
option.apply();
}
}
}
public class Application {
public static void main(String[] args) {
Options options = new Options();
Option firstOption = new Option() {
@Override
public void apply() {
System.out.println("First option applied");
}
};
options.addOption("first", firstOption);
Option secondOption = new Option() {
@Override
public void apply() {
System.out.println("Second option applied");
}
};
options.addOption("second", secondOption);
options.applyOption("first"); // Output: "First option applied"
options.applyOption("second"); // Output: "Second option applied"
}
}