Heim >Backend-Entwicklung >PHP-Tutorial >Eine kleine Frage zum Singleton-Modus
Vor kurzem habe ich einige kleine Projekte gestartet und bin mit dem einfachen Gewinnmodell in Berührung gekommen. Basierend auf dem Prinzip, bei der Definition einer Klasse Informationen so weit wie möglich zu verbergen, habe ich die Klasse wie folgt geschrieben
<code>class openGate{ private $dbname='mysql:host=localhost;dbname=project'; private $username='root'; private $password='root'; private static $key=null; private function __construct(){} private function __clone(){} public static function gateKey(){ if (self::$key==null) { self::$key=new openGate(); return self::$key->gateWay(); } return self::$key->gateway(); } public function gateWay(){ return new PDO($this->dbname,$this->username,$this->password); } } $person=openGate::gateKey(); var_dump($person);</code>
Entschuldigung, wie ist das im Vergleich zu Folgendem
<code>class openGate{ private static $key=null; private function __construct(){} private function __clone(){} public static function gateKey(){ if (self::$key==null) { $dbname='mysql:host=localhost;dbname=project'; $username='root'; $password='root'; return self::$key=new PDO($dbname,$username,$password); } return self::$key; } } $person=openGate::gateKey(); var_dump($person);</code>
Was sind die Vor- und Nachteile, oder ist es einfach überflüssig?
Vor kurzem habe ich einige kleine Projekte gestartet und bin mit dem einfachen Gewinnmodell in Berührung gekommen. Basierend auf dem Prinzip, bei der Definition einer Klasse Informationen so weit wie möglich zu verbergen, habe ich die Klasse wie folgt geschrieben
<code>class openGate{ private $dbname='mysql:host=localhost;dbname=project'; private $username='root'; private $password='root'; private static $key=null; private function __construct(){} private function __clone(){} public static function gateKey(){ if (self::$key==null) { self::$key=new openGate(); return self::$key->gateWay(); } return self::$key->gateway(); } public function gateWay(){ return new PDO($this->dbname,$this->username,$this->password); } } $person=openGate::gateKey(); var_dump($person);</code>
Entschuldigung, wie ist das im Vergleich zu Folgendem
<code>class openGate{ private static $key=null; private function __construct(){} private function __clone(){} public static function gateKey(){ if (self::$key==null) { $dbname='mysql:host=localhost;dbname=project'; $username='root'; $password='root'; return self::$key=new PDO($dbname,$username,$password); } return self::$key; } } $person=openGate::gateKey(); var_dump($person);</code>
Was sind die Vor- und Nachteile, oder ist es einfach überflüssig?
Ihre Änderungen haben nichts mit dem Singleton-Modell zu tun