В настоящее время у меня есть метод, который действует как factory на основе данной строки. Например:
public Animal createAnimal(String action)
{
    if (action.equals("Meow"))
    {
        return new Cat();
    }
    else if (action.equals("Woof"))
    {
        return new Dog();
    }
    ...
    etc.
}
То, что я хочу сделать, - это избежать всей проблемы if-else при увеличении списка классов. Я полагаю, мне нужно иметь два метода: один, который регистрирует строки для классов, а другой - возвращает класс, основанный на строке действия.
Какой хороший способ сделать это в Java?
