php設(shè)計(jì)模式——單例模式

單例模式

  • 使某個(gè)類的對(duì)象僅允許創(chuàng)建一個(gè)(減少資源浪費(fèi))

  • 定義

<?php
class Test{
  //私有屬性,用于保存實(shí)例
  private static $instance;
  //構(gòu)造方法私有化,防止外部創(chuàng)建實(shí)例
  private function __construct(){}
  //公有方法,用于獲取實(shí)例
  public static function getInstance(){
      //判斷實(shí)例有無創(chuàng)建,沒有的話創(chuàng)建實(shí)例并返回,有的話直接返回
      if(!(self::$instance instanceof self)){
          self::$instance = new self();
      }
      return self::$instance;
    }
    //克隆方法私有化,防止復(fù)制實(shí)例
    private function __clone(){}

}
  • 使用
    $first = Test::getInstance();
    
  • 好處
    減少資源(mysql鏈接)浪費(fèi)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 適用性 當(dāng)類只能有一個(gè)實(shí)例而且客戶可以從一個(gè)眾所周知的訪問點(diǎn)訪問它時(shí)。 當(dāng)這個(gè)唯一實(shí)例應(yīng)該是通過子類化可擴(kuò)展的,并...
    木有sky閱讀 442評(píng)論 0 0
  • 單例模式(Singleton Pattern 單件模式或單元素模式) 單例模式確保某個(gè)類只有一個(gè)實(shí)例,而且自行實(shí)例...
    積_漸閱讀 355評(píng)論 0 1
  • 單例模式又稱為職責(zé)模式,它用來在程序中創(chuàng)建一個(gè)單一功能的訪問點(diǎn),通俗地說就是實(shí)例化出來的對(duì)象是唯一的。所有的單例模...
    henryspace閱讀 203評(píng)論 0 0
  • 問題: 需要一個(gè)對(duì)象可以被系統(tǒng)中的任何對(duì)象使用 對(duì)象不能被隨意被覆蓋 系統(tǒng)不能有超過一個(gè)該對(duì)象 實(shí)現(xiàn): 由于構(gòu)造函...
    雨而已閱讀 210評(píng)論 0 0
  • 實(shí)例化一次 單例模式無法new $db = new Database();單例模式-> $db = Datab...
    bycall閱讀 608評(píng)論 0 0

友情鏈接更多精彩內(nèi)容