Gerhard: Methoden in Klasse inkludieren

Beitrag lesen

Also, dein Ansatz erscheint mir irgendwie extrem seltsam zu sein...

Hallo!

Der Ansatz ist eine Factory-Klasse.

Ich kenne keine Sprache in der so was gehen würde, würde ich es nicht machen...

Und was deine Begründung mit dem Overhead angeht: Die paar Kilobyte, die du damit sparst... dafür würde ich lieber eine vernünftige, nachvollziehbare Struktur mit Vererbungen bauen...

Als ich eben noch mal darüber nachgedacht habe, habe ich die Lösung gefunden. Das ist so simpel, daß ich es einfach nicht gesehen habe. Die Module enthalten nun vollständige Klassen. In der Klasse kunde gibt es eine dao-Funktion, die statisch über

$max = kunde::dao("Max", "m");
$max->print_kunde();

$sandra = kunde::dao("Sandra", "w");
$sandra->print_kunde();

aufgerufen wird. In der dao-Funktion wird NUR die benötigte Klasse inkludiert, ein neues Objekt aus ihr generiert mit Zuweisung des Namens an dessen Konstruktor. Anschließend übergibt die dao-Funktion mit return das Objekt an $max bzw. $sandra.

Das funktioniert jetzt einwandfrei.