這篇文章主要為大家展示了php中單例模式,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“php中單例模式”這篇文章吧。
專業(yè)領域包括成都網站設計、成都網站建設、外貿網站建設、商城網站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網站設計及系統(tǒng)開發(fā)公司不同,成都創(chuàng)新互聯(lián)公司的整合解決方案結合了幫做網絡品牌建設經驗和互聯(lián)網整合營銷的理念,并將策略和執(zhí)行緊密結合,為客戶提供全網互聯(lián)網整合方案。
php是一個嵌套的縮寫名稱,是英文超級文本預處理語言,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網站開發(fā),許多小型網站都用php開發(fā),因為php是開源的,從而使得php經久不衰。
1.單例模式的由來
類
是對現實生活中一類具有共同特征的事物的抽象,通過類的實例化,產生了許多的對象,但同時也產生了大量資源的消耗(例如在連接數據庫
時連接數量的限制,又例如在計算機中打開資源管理器
卻具有唯一性),由此也產生了對類的實例化進行了限定的需求,為了保護資源的唯一性,由此產生了單例模式
。
2.單例模式的定義
定義:單例模式singleton,是一種類的設計只會最多產生一個對象的設計思想。
3.單例模式的實例
a.創(chuàng)建一個空類 。
b.能夠多次實例化類,是產生多個對象的原因,所以可以通過私有化構造方法
。
"; } } ?>
c.私有化構造方法
使得實例化對象產生的數目為0,由此可以通過在類的內部,通過靜態(tài)方法
調用構造方法,然后將構造方法返回至外部。
"; } public static function getInstance() { return new self(); } } $s1=Use::getSingleton(); ?>
d.通過上述的方法雖然能夠實例化對象,但是同時也將構造方法的使用權限外放出去。如果想要該方法只返回一個對象,就得保證類內部有辦法存著某個產生的對象,第一次產生新的,后面返回舊的。此時需要使用靜態(tài)屬性。
"; } public static function getInstance() { //判斷類內部的靜態(tài)屬性是否存在對象 if(!(self::$object instanceof self)){ //當前保存的內容不是當前類的對象 self::$object = new self(); } //返回對象給外部 return self::$object; } } $s1=Use::getSingleton(); ?>
e.此時可以保證,通過調用靜態(tài)方法
只得到一個對象
。但是依舊可以通過克隆
,不停的實例化新的對象,所以可以將克隆
私有化。
"; } public static function getInstance() { //判斷類內部的靜態(tài)屬性是否存在對象 if(!(self::$object instanceof self)){ //當前保存的內容不是當前類的對象 self::$object = new self(); } //返回對象給外部 return self::$object; } private function __clone(){} } $s1=Use::getSingleton(); ?>
以上就是關于“php中單例模式”的內容,如果改文章對你有所幫助并覺得寫得不錯,勞請分享給你的好友一起學習新知識,若想了解更多相關知識內容,請多多關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。