Erstellen einer Factory-Methode in Java, die sich nicht auf if-else @ stüt

erzeit habe ich eine Methode, die als Factory auf einer bestimmten Zeichenfolge basiert. Beispielsweise

public Animal createAnimal(String action)
{
    if (action.equals("Meow"))
    {
        return new Cat();
    }
    else if (action.equals("Woof"))
    {
        return new Dog();
    }

    ...
    etc.
}

Ich möchte das gesamte if-else-Problem vermeiden, wenn die Liste der Klassen wächst. Ich glaube, ich brauche zwei Methoden, eine, die Strings für Klassen registriert, und eine andere, die die Klasse basierend auf dem String der Aktion zurückgibt.

Was ist ein guter Weg, um dies in Java zu tun?

Antworten auf die Frage(20)

Ihre Antwort auf die Frage