Heim > Backend-Entwicklung > PHP-Tutorial > Eine kleine Frage zum Singleton-Modus

Eine kleine Frage zum Singleton-Modus

WBOY
Freigeben: 2023-03-01 15:08:01
Original
1166 Leute haben es durchsucht

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

Was sind die Vor- und Nachteile, oder ist es einfach überflüssig?

Antwortinhalt:

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

Was sind die Vor- und Nachteile, oder ist es einfach überflüssig?

Ihre Änderungen haben nichts mit dem Singleton-Modell zu tun

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage