Polymorfi har da absolut intet med sagen at gøre?! Jeg har brug for at kører en funktion afhængigt af input fra brugeren. Derfor spørger jeg om jeg bliver nød til at bruge if else, og i svarer "Nej, brug et map". Og nu siger du at det er forkert?! Hvad skal jeg gøre..
Polimorfi har ALT med sagen at gøre. Mit eksempel fra før kalder en polimorf metode i nedarvet klasse på baggrund af input fra brugeren.
Jeg brugte et map til at mappe tekst (som brugeren indtaster) til et objekt af en klasse som nedarver Command klassen. Den nedarvede klasse skal implementere execute() metoden (dette er polymorfi).
Man kan så tilføje flere Command arvinger og tilføje dem. Og så slipper man for en masse grimme if/else konstruktioner.
Man kunne endda mappe den samme klasse til flere tekster:
commands["exit"] = new Exit;
commands["quit"] = commands["exit"];
commands["leave"] = commands["exit"];