摘要:一什么是單例設(shè)計(jì)模式單例模式,也叫單子模式,是一種常用的軟件設(shè)計(jì)模式。在應(yīng)用這個(gè)模式時(shí),單例對象的類必須保證只有一個(gè)實(shí)例存在。
一、什么是單例設(shè)計(jì)模式
單例模式,也叫單子模式,是一種常用的軟件設(shè)計(jì)模式。在應(yīng)用這個(gè)模式時(shí),單例對象的類必須保證只有一個(gè)實(shí)例存在。
二、單例模式的技巧利用$_instance私有變量來保存類的唯一實(shí)例化對象;
設(shè)計(jì)一個(gè)getInstance對外公開的函數(shù),可以獲取類唯一實(shí)例;
防止用戶用new實(shí)例化,和克隆,構(gòu)造兩個(gè)__construct、__clone私有函數(shù);
三、單例模式的應(yīng)用場景數(shù)據(jù)庫設(shè)計(jì),我們發(fā)送一次請求,可能會需要訪問不同的表,那么如果每次訪問都 new 一個(gè)實(shí)例,那必然會造成資源的浪費(fèi),所以使用單例模式,可以很好的節(jié)省資源。
class DataBase { /** * 靜態(tài)成品變量,保存全局實(shí)例 */ private static $_instance = null; /** * 測試變量,存儲日志信息 */ private static $_msg = null; /** * 私有構(gòu)造方法,防止外界實(shí)例化對象 */ private function __construct() { $connect = "連接數(shù)據(jù)庫操作"; } /** * 私有化克隆方法,防止外鍵克隆對象 */ private function __clone() { } /** * 靜態(tài)方法,外界獲取實(shí)例的唯一接口 * @return Object 返回對象唯一實(shí)例 */ public static function getInstance() { if (!self::$_instance){ self::$_instance = new DataBase(); self::$_msg = "這是一個(gè)新對象" . "
"; }else{ self::$_msg = "這個(gè)是一個(gè)舊的對象" . "
"; } return self::$_instance; } public function log() { echo self::$_msg; } }
$dbA = DataBase::getInstance(); $dbA->log(); $dbB = DataBase::getInstance(); $dbB->log(); $dbC = DataBase::getInstance(); $dbC->log();
這是一個(gè)新對象
這個(gè)是一個(gè)舊的對象
這個(gè)是一個(gè)舊的對象
“對象”?,程序員怎么可能有對象!~
參考 系列源地址WilburXu/design_pattern
系列目錄PHP 設(shè)計(jì)模式概述
PHP設(shè)計(jì)模式(一)簡單工廠模式 (Simple Factory For PHP)
PHP設(shè)計(jì)模式(二)工廠方法模式(Factory Method)
PHP設(shè)計(jì)模式(三)抽象工廠模式(Abstract Factory)
PHP設(shè)計(jì)模式(四)單例模式(Singleton)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/29503.html
摘要:單例模式用于為一個(gè)類生成一個(gè)唯一的對象。作為對象的創(chuàng)建模式,單例模式確保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例,這個(gè)類稱為單例類。 單例模式(Singleton):用于為一個(gè)類生成一個(gè)唯一的對象。最常用的地方是數(shù)據(jù)庫連接。 使用單例模式生成一個(gè)對象后,該對象可以被其它眾多對象所使用。 作為對象的創(chuàng)建模式,單例模式確保某一個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系...
摘要:創(chuàng)建型模式主要有以下五種簡單工廠模式和工廠方法模式抽象工廠模式單例模式建造者模式原型模式在設(shè)計(jì)模式一書中將工廠模式分為兩類工廠方法模式與抽象工廠模式。 一、 設(shè)計(jì)模式(Design pattern)是什么 設(shè)計(jì)模式是一套被反復(fù)使用、多數(shù)人知曉、經(jīng)過分類編目的代碼設(shè)計(jì)的經(jīng)驗(yàn)總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 二、 為什么會有設(shè)計(jì)模式 在軟件開發(fā)過...
摘要:大佬看完如果發(fā)現(xiàn)鄙人理解有誤請立即指出,感謝拍磚,跪求鞭打單例單元素模式實(shí)現(xiàn)來自說明通過提供對自身共享實(shí)例對訪問,單元素單例設(shè)計(jì)模式用于限制特定對象只能被創(chuàng)建一次。 整理一下自己的學(xué)習(xí)Aaron Saray 寫的PHP設(shè)計(jì)模式一些demo和自己的理解。大佬看完如果發(fā)現(xiàn)鄙人理解有誤請立即指出,感謝拍磚,跪求鞭打 /** * Singleton 單例(單元素)模式實(shí)現(xiàn) * -----...
閱讀 1929·2021-09-14 18:03
閱讀 2325·2019-08-30 15:48
閱讀 1195·2019-08-30 14:09
閱讀 580·2019-08-30 12:55
閱讀 2795·2019-08-29 11:29
閱讀 1549·2019-08-26 13:43
閱讀 2371·2019-08-26 13:30
閱讀 2435·2019-08-26 12:17