Nieuw lid |
|
STEL:
class Site{
private static $Instance = null;
private $Interfaces = Array();
private function __construct()
{
echo "<br>construct<br>";
}
public static function getInstance(){
if (!self::$Instance) {
if (is_null(self::$Instance)){
$class_name = __CLASS__;
self::$Instance = new Site();
}
}
return self::$Instance;
}
public function printInterfaces(){
echo enzovoort....
}
}
class Site{ private static $Instance = null; private $Interfaces = Array(); private function __construct() { echo "<br>construct<br>"; } public static function getInstance (){ if (!self::$Instance) { $class_name = __CLASS__; self::$Instance = new Site(); } } return self::$Instance; } public function printInterfaces(){ } }
Als ik dus in een andere class een instance wil gaan nemen:
Class blabla{
public function Foo(){
$ru = Site::getInstance()->printInterfaces();
}
}
Class blabla{ public function Foo(){ $ru = Site::getInstance()->printInterfaces(); } }
Er kunnen hier wel syntaxfouten inzitten, maar das de point niet.
Het probleem is, dat als ik de functie Foo() ga oproepen, die altijd de constructor, dus echo "<br>construct<br>"; zal afbeelden.
Ik weet het, niet zo duidelijk, maar wil iemand toch even moeite doen aub?
Het komt erop neer dat als een methode die niet in de klasse zit van het singleton pattern, de regels van "1 instantie" aan zijn laars veegt en nogmaals de constructor binnengaat.
---------_>smilies door $ i vervangen
code tags aub...
|