Hallo,
ich würde gerne eine Basisklasse haben, die eine statische Methode (z.B. getInstance()) vererbt. Diese Methode soll dabei eine Implementierung des Singleton-Patterns darstellen. Auf diese Weise sollten alle abgeleiteten Klassen das Singleton-Pattern implementieren. Im Prinzip müsste in jeder Kindsklasse folgender Code stehen:
Nur würde ich gerne den Code nicht tausend Mal kopieren, sondern lieber zentral in der Basisklasse implementieren. Wenn ich aber den Code so in die Basisklasse schreiben würde, würde ich selbst wenn ich 2 Kindsklassen hätte nur ein Objekt erstellen können, weil über self::$_instance die statische Eigenschaft der Basisklasse angesprochen würde und nicht die der Kindsklasse. Gibt es eine Möglichkeit die Kindsklasse aus Elternklasse anzusprechen, auch wenn die Eigenschaft $_instance als protected deklariert wurde? Oder fällt jemandem vielleicht eine völlig andere Lösung für das Problem ein?
ich würde gerne eine Basisklasse haben, die eine statische Methode (z.B. getInstance()) vererbt. Diese Methode soll dabei eine Implementierung des Singleton-Patterns darstellen. Auf diese Weise sollten alle abgeleiteten Klassen das Singleton-Pattern implementieren. Im Prinzip müsste in jeder Kindsklasse folgender Code stehen:
Code:
class Kindesklasse extends Basisklasse
{
protected static $instance=null;
public static function getInstance()
{
if(self::$_instance===null)
{
self::$_instance = new self;
}
return self::$_instance;
}
}