Hi,
ich habe in einer Klasse mehrere hundert Methoden die für einen bestimmten Stringwert aufgerufen werden müssen.
Mein Code der execute() procedure sieht daher so aus:
Delphi-Quellcode:
...
else if Name = '• Adressen' then
begin
self.genAdressen(PromptValues);
end
else if Name = '• Adress-Kategorien' then
begin
self.genADKategorien(PromptValues);
end
else if Name = '• Objekte' then
begin
self.genObjekte(PromptValues);
end
...
Jetzt ist das meiner Meinung nach viel zu komplex, d.h. wenn der Parametername XYZ kommt, muss dieser IF-ELSE-Block bis zum Schluss abgearbeitet werden.
Gibts nicht die Möglichkeit innerhalb der
Unit statisch schonmal irgendeine Datenstruktur definiert um zu sagen:
"Adressen" => genAdressen
"Objekte" => genObjekte
usw..
Natürlich könnte man sowas denke ich recht einfach zur Laufzeit erstellen, also irgendeinen Container der als Key einen string und als Value einen Methodenzeiger abspeichert. Aber da das dann immer zur Laufzeit erst generiert werden muss dachte es wäre wohl sinnvoller sowas schon statisch festlegen.