php的單例模式

來源:互聯網
上載者:User

標籤:ons   設計   資源管理員   執行個體化   構造   one   new   限制   private   

單例模式:指的是一個對象的模式,指一個類只能建立一個對象。

既然限制一個類只能建立一個對象,就是說要關閉其他建立對象的途徑。

所以實現單例,必須滿足一下條件:

1.不讓複製(私人複製方法)

2.不讓建立對象(私人構造方法,不能在類外部使用new關鍵字建立對象)

3.在類中建立對象(靜態方法)

4.判斷對象是否存在,如果存在返回原對象,否則建立新對象

使用單例模式好處在於可以節省資源,比如Db類設計,比如window系統常見的資源管理員。

 

 

<?phpclass Single{//定義一個屬性儲存對象    private static $single;         //私人構造方法    private function __construct($name){        $this->name = $name;    }        //私人化複製方法    private function __clone(){    }        //靜態方法:讓類進入到類的內部進行執行個體化得到對象     public static function getInstance($name){         //判斷對象是否存在,如果存在返回原對象,否則建立新對象         if(!self::$single){              self::$single = new Single($name);         }         return self::$single;     }}$single = Single::getInstance(‘libai‘);var_dump($single);$single = Single::getInstance(‘dufu‘);var_dump($single);

 

php的單例模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.