Итак, у меня есть класс, содержащий поле String:
public class A {
private String type = ...
public String getType(){
return this.type;
}
public void setType(String type){
this.type = type;
}
}
У меня также есть список всех возможных типов, их будет двенадцать и, возможно, больше в будущем.
Теперь я хочу написать метод, который получает объект класса A и вызывает определенный метод в зависимости от того, какой «тип» находится в классе. Есть ли более разумное решение, чем написание 12 (или более) операторов if?
Обычно я бы использовал шаблон Visitor, но я не хочу создавать двенадцать новых классов.
edit:
В итоге я создал
Map<String,Function<A,String>> map = new HashMap<String,Function<A,String>>
а потом позвони
A a;
...
map.get(a.getType).apply(a);