設計模式(十四):單例模式

轉載請注明作者和出處http://www.lxweimin.com/p/625636bff086

運行平臺: Windows

php版本: php7.0

作者簡介: 一個本該成為游戲職業選手卻被編程耽誤的程序員


單例模式:

很多人都聽過,有一個說法,三私一公,只要滿足這個特點,那么一般他就是單例模式了
①、私有靜態屬性,又來儲存生成的唯一對象
②、私有構造函數
③、私有克隆函數,防止克隆——clone
④、公共靜態方法,用來訪問靜態屬性儲存的對象,如果沒有對象,則生成此單例
,也就是說,全場只能有一個被實例化的對象,這在數據庫連接是經常被用到

//單例
class Singleton{
    //創建靜態私有的變量保存該類對象
    static private $instance;
    //參數
    private $config;
    //防止直接創建對象
    private function __construct($config){
        $this -> config = $config;
        echo "我被實例化了";
    }
    //防止克隆對象
    private function __clone(){

    }
    static public function getInstance($config){
        //判斷$instance是否是Singleton的對象
        //沒有則創建
        if (!self::$instance instanceof self) {
            self::$instance = new self($config);
        }
        return self::$instance;

    }
    public function getName(){
        echo $this -> config;
    }
}
$db1 = Singleton::getInstance(1);
$db1 -> getName();
echo "<br>";
$db2 = Singleton::getInstance(4);
$db2 -> getName();

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。