您好,欢迎访问一九零五行业门户网

单例模式的一点小疑问

最近在开始一些小项目,接触到单利模式,本着定义类的时候,尽可能的隐藏信息的原则,我对类进行了以下的编写
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);

请问一下,这样和以下相比
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);

有哪些优缺点,或者是只是单纯的多余呢?
回复内容: 最近在开始一些小项目,接触到单利模式,本着定义类的时候,尽可能的隐藏信息的原则,我对类进行了以下的编写
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);

请问一下,这样和以下相比
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);

有哪些优缺点,或者是只是单纯的多余呢?
你的改动,跟单例模式没有半毛钱关系
其它类似信息

推荐信息