Hallo eddi, hallo Sven, hallo dedlfix,
vielen Dank für Eure Antworten.
Wie es aussieht, werde ich doch jeder abgeleiteten Klasse Bar1 etc. eine eigene statische getClassname()
-Methode verpassen. Ich hatte gehofft, dieses zu vermeiden, da diese Methoden ja alle identisch sind. (Stichwort DRY-Prinzip „Don’t repeat yourself“).
In der realen Umsetzung (das verkürzte Beispiel war ja nur zur Demonstration des Problems) wird also jede Unterklasse eine Methode Bar1::getInstance()
haben, die der Methode Foo::getInstance()
als Parameter den Klassennamen mitliefert. Diese bildet dann gegebenenfalls ein neues Objekt mit return new $objectName;
.
Ich hatte gehofft, dass das eleganter geht.
Viele Grüße
Olaf Schneider