Moin,
heute hätte ich da auch mal eine Meinungsfrage. Mein Projekt wächst und wächst und ich merke das ich viele Klassen habe, die nur einmal initialisiert werden. Also braucht man nur 1 Instanz dieser Klasse. Da mein Schwerpunkt bislang vor allem bei Javascript lag hab ich nach einer Möglichkeit gesucht Singletons zu erschaffen in php. Hab dann schliesslich folgendes Basiskonstrukt gefunden:
class cSingleton
{
static private $objInstance = null;
private function __constuct() {}
private function __clone() {}
static public function init()
{
if(self::$objInstance == null) {
self::$objInstance = new self();
}
return $objInstance;
}
public function machwas()
{
}
}
Dem Gegenüber würden statische Klassen bzw. Methoden stehen.
class cStatic
{
static public function machwas()
{
}
}
Der Aufruf wäre einmal so:
cSingleton::init()->machwas();
und einmal so
cStatic::machwas();
Meine Frage ist, welches von beiden besser ist?
Ich empfinde die erste Lösung als besser, da man als init() Rückgabe wert theoretisch eine andere Instanz zurückgeben könnte z.B. cSingletonChild. Also eine Fabrik.
Gruß
Fabrikant
T-Rex