麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > FAQ問答 > 正文

什么是單例模式?

2020-03-22 18:38:19
字體:
來源:轉載
供稿:網友
單例模式(Singleton pattern)是一種常用的軟件設計模式。在它的核心結構中只包含一個被稱為單例類的特殊類。通過單例模式可以保證系統中一個類只有一個實例而且該實例易于外界訪問,從而方便對實例個數的控制并節約系統資源。如果希望在系統中某個類的對象只能存在一個,單例模式是最好的解決方案。

如何保證一個類只有一個實例并且這個實例易于被訪問呢?定義一個html' target='_blank'>全局變量可以確保對象隨時都可以被訪問,但不能防止我們實例化多個對象。一個更好的解決辦法是讓類自身負責保存它的唯一實例。這個類可以保證沒有其他實例被創建,并且它可以提供一個訪問該實例的方法。這就是單例模式的模式動機。

例如我們在php的開發過程中我們創建了一個db類(數據庫操作類),那么我們希望再一個php文件中一個數據庫只被連接一次而一個php文件中也只需要一個數據庫對象!因為多次連接數據庫會大大降低php的執行效率。也會帶來極大的系統開銷!

使用單例模式來封裝你的數據庫吧

 ?phpclass db//使用一個靜態變量記錄db對象初始化時為nullpublic static $db = null;/* 私有構造函數是類無法完成外部的調用* 意味著您將無法使用 $xx = new db();private function __construct(){echo 連接數據庫.... * 使用靜態方法去獲取數據對象* 獲取時先判斷db對象是否已經存在,如果存在則直接返回db對象反正則創建這個對象public static function getInstance(){if(self::$db == null){self::$db = new db();return self::$db;public function query($sql){echo 執行sql命令 public function __destruct(){echo 關閉數據庫連接.... $db = db::getInstance();$db1 = db::getInstance();$db- query( test $db2 = db::getInstance();//輸出 : 連接數據庫....執行sql命令關閉數據庫連接....

//可以看到不論我們獲取多少次db對象,雖然他們名稱不同,但都代表著同一個對象!這樣就實現單例模式!

以上就是什么是單例模式?的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美性生交xxxxx久久久 | 国产在线地址 | av在线浏览 | 亚洲精品成人久久 | 国产乱淫av | 国产精品久久久久久久久久10秀 | 毛片视频免费播放 | www.9191.com | 亚洲免费视 | 在线亚洲欧美日韩 | 毛片一区二区三区四区 | 国产亚洲精品久久久久久久久 | 亚洲性视频 | 99精美视频| 国产一级大片在线观看 | 免费a观看| 欧美视频一区二区三区四区 | 爱草成年| 成人在线高清视频 | 国产精品视频一区二区三区综合 | 久草成人在线观看 | 日日鲁一鲁视频 | 91社区电影 | h视频在线免费观看 | 国产精品一区免费在线观看 | 香蕉成人在线视频 | 成人性视频在线 | 精品亚洲成a人在线观看 | 久久99综合久久爱伊人 | h网站在线观看 | 天天干干| 日韩黄色三级视频 | 成人国产精品一区 | 精品一区二区电影 | 视频一区二区三区中文字幕 | 国产毛毛片一区二区三区四区 | 成人mm视频在线观看 | 99精品视频免费看 | 国产成人自拍视频在线 | 成人精品久久久 | 色呦呦一区二区三区 |