單例模式這個東西我相信有許多的朋友都不了解了,今天既然有學習到單例模式我就給各位整理一些小編學習用到的參考內容供各位學習。
1.定義
單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統全局地提供這個實例。它不會創建實例副本,而是會向單例類內部存儲的實例返回一個引用。
2.解決的問題/使用場景
在數據庫應用方面,使用單例模式,可以避免大量的new操作消耗的資源。
如果在系統中需要一個類來全局控制某些配置信息,那么使用單例模式可以很方便的實現。
3.實現單例模式的要點
需要一個保存類的唯一實例的靜態成員變量。
構造函數和克隆函數必須聲明為私有的,防止外部程序new類從而失去單例模式的意義。
需要提供一個訪問這個實例的靜態方法(一般為getInstance方法),返回實例的引用。
4.實現代碼示例
- <?php
- class Singleton
- {
- private static $instance;
- private $conn;
- private function __construct()
- {
- $this->conn = mysql_connect(...);
- }
- private function __clone()
- {
- }
- public static function GetInstance()
- {
- if (!(self::$instance instanceof self))
- {
- slef::$instance = new self();
- }
- return self::$instance;
- //Vevb.com
- }
- public function GetDbConnect()
- {
- return $this->conn;
- }
- public function selectData($sql)
- {
- // $result mysql_query($sql,$this->conn);
- // while mysql_fetch_array($result)....
- }
- }
- $db = Singleton::GetInstance();
- $db->selectData("select * from user");
- ?>
新聞熱點
疑難解答