Hallo Leute,
in Kürze: kann man Funktionen von Objekten umbiegen/ überschreiben, ohne das Objekt neu erstellen oder zerstören zu müssen?
Hintergrund:
ich habe da ein Modul das zyklisch eine Aufgabe erledigt. Zur Erledigung dieser Aufgabe werden je nach Parameter unterschiedliche Funktionen benötigt. Genauer: der Ablaufplan ist immer gleich, doch die Funktionen der Teilaufgaben ändern sich.
Skizziert ist es etwa so:
package foo;
sub ctrl () {...}
sub step1_a () {}
sub step1_b () {}
sub step2() {}
Je nach Parameter soll die Kontrollfunktion ctrl() die Funktionen step1_a und step2 oder step1_b und step2 aufrufen.
Da es recht viele solcher "Weichen" gibt, wird der Code unglaublich unübersichtlich, wenn man ihn mit den zig ifs zupflastert. Perfomant ist es zudem sicherlich nicht.
Daher gehe ich aktuell den Weg, in einem Array Referenzen auf zuständige Funktionen abzuspeichern, damit ich in den Teilaufgaben keine IFs habe. Diese Referenzen werden Ereignisgesteuert umgebogen.
Es stellte sich aber die Frage, ob man das nicht etwa noch übersichtlicher, also objektorientiert proggen kann. Leider müsste ich hierzu das Objekt selbst zur Laufzeit manipulieren können. Das geht afaik nicht. Ein entsprechendes Datenfeld im Objekt abzulegen macht wohl kaum Sinn.
greetz sosum