Hallo MB,
In dem Fall sollte der Konstruktor private und die Funktionalität über eine public static Funktion erreichbar sein.
Du meinst Sigelton? Wozu?
Du meinst Singleton? Nein, das nicht zwangsläufig das Gleiche.
class Foo {
static function DoSomeWork($a, $b, $c) {
$foo = new Foo();
$foo->doThis($c);
$foo->doThat();
return $foo;
}
private function __construct($a, $b) {
}
}
Jeder Aufruf von DoSomeWork erzeugt eine neue Foo-Instanz und gibt sie zurück. Kein Singleton zu sehen.
Im Übrigen möchte ich vor Übereifer im Software-Tango warnen: Daphne, you're overengineering again!
Code für die Zukunft zu bauen ist zumeist sinnlos. Bau das, was Du jetzt brauchst. Baue Unittests, um Fehler durch Codeänderungen automatisiert zu erkennen. Und wenn neue Anforderungen kommen, refaktoriere soweit wie nötig. Aber nicht mehr.
Rolf
--
sumpsi - posui - clusi
sumpsi - posui - clusi