首頁 >後端開發 >php教程 >php設計模式:淺談php單例模式(附程式碼)

php設計模式:淺談php單例模式(附程式碼)

不言
不言原創
2018-08-04 14:45:252742瀏覽

什麼是設計模式?模式是特定環境下同類問題的解決方案,可重複使用物件導向軟體的基礎,php設計模式其實有很多種,那麼,今天在這裡我跟大家說一說php實現一個單例模式。

概念:

設計模式(Design pattern)代表了最佳的實踐,通常被有經驗的物件導向的軟體開發人員所採用。設計模式是軟體開發人員在軟體開發過程中面臨的一般問題的解決方案。這些解決方案是眾多軟體開發人員經過相當長的一段時間的試驗和錯誤總結出來的。

php單例模式定義
    php單例模式,是一種常用的php軟體設計模式。在它的核心結構中只包含一個被稱為單例的特殊類別。透過php單例模式可以保證系統中應用該模式的類別一個類別只有一個實例,php單例模式自行實例化並且向整個系統提供這個實例化的類別。

php單例模式程式碼:

<?php
    class preferences
    {
        private $props = array();        
        private static $instance;        
        private function __construct(){}        
        public static function getInstance()
        {
            if(empty(self::$instance))
            {                
            self::$instance = new preferences();
            }            
            return self::$instance;
        }        
        public function setProperty($key,$value)
        {
            $this->props[$key] = $value;
        }        
        public function getProperty($key)
        {
            return $this->props[$key];
        }
    }    $ref = preferences::getInstance();    
    $ref->setProperty(&#39;name&#39;,&#39;ypp&#39;);    
    unset($ref);//移除引用
    //var_dump(preferences::getInstance());
    // echo $ref->getProperty(&#39;name&#39;);
    $ref2 = preferences::getInstance();//值并未丢失
    echo $ref2->getProperty(&#39;name&#39;); //这里输出ypp

總結
透過定義一個類,定義一個私有的建構函數,這樣外界無法透過實例化存取這個類別的屬性和方法,然後在class裡定義一個靜態方法,透過存取這個靜態方法來實例化類,這樣就可以全域存取這個類別裡的屬性和方法了,並向整個系統提供這個類。

相關文章推薦:

PHP單例模式是什麼php實作單例模式的方法,php模式

PHP設計模式單例模式

php設計模式之單例模式程式碼,php設計模式

以上是php設計模式:淺談php單例模式(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn