<xmp id="cogkk"><nav id="cogkk"></nav>
<dd id="cogkk"></dd>
  • <menu id="cogkk"><menu id="cogkk"></menu></menu>
    <menu id="cogkk"><code id="cogkk"></code></menu>

    卓象程序員 | 哈爾濱IT培訓 | 品質教育,口碑傳承 | 為做出口口相傳,好口碑的教育品牌而奮斗!

    卓象程序員讓每一位學員高薪就業 聯系我們13101507057

    加微信,了解詳情
    您所在的位置:首頁 > 文章 >卓象技術

    「卓象程序員」PHP設計模式--單例模式
    時間: 2019-11-26 17:19:12     來源: 卓象IT實訓基地【原創】


    單例模式

    定義:簡單的說,整個應用一次訪問流程中只有一個實例對象的設計模式。


    我對單例模式的理解就是可以減少new的操作,因為new操作的時候會消耗內存,如果進行大量的new操作,就會消耗大量的內存。


    例如:


    class abc {
    }
    $a = new abc;
    $b = new abc;
    $c = new abc;
    $d = new abc;
    echo "內存初始: ".memory_get_usage()."Bn";
    echo '<pre>';
    var_dump($a);
    echo '</pre>';
    echo "內存使用: ".memory_get_usage()."Bn";
    echo '<pre>';
    var_dump($b);
    echo '</pre>';
    echo "內存使用: ".memory_get_usage()."Bn";
    echo '<pre>';
    var_dump($c);
    echo '</pre>';
    echo "內存使用: ".memory_get_usage()."Bn";
    echo '<pre>';
    var_dump($d);
    echo '</pre>';
    echo "內存使用: ".memory_get_usage()."Bn";
    echo "峰值: ".memory_get_peak_usage()."Bn"


    輸出結果:


    這里每一次new 操作就會增加內存的占用。而使用單例模式則不會造成這種情況。


    單例模式的要點


    1.某個類只能有一個實例。


    2.必須自行創建這個實例。


    3.必須自行向整個系統提供這個實例。


    下面是創建一個單例類的示例:


    /**
    * @purpose: 創建一個單例類
    * Class Single
    */
    class Single {
       /**
        * @var Object 保存類實例的靜態成員變量
        */
       private static $_instance;
       /**
        * Single constructor. 私有的構造方法
        */
       private function __construct(){
           echo 'This is a Constructed method;';
       }
       /**
        * @purpose: 創建私有__clone方法防止對象被復制克隆
        */
       private function __clone(){
       }
       /**
        * @return Single|Object 單例方法,用于訪問實例的公共的靜態方法
        */
       public static function getInstance(){
           if(!(self::$_instance instanceof self)){
               self::$_instance = new self;
           }
           return self::$_instance;
       }
    }


    現在我們進行實例化輸出:



    這里可以看出就算多次實例化內存也沒有進行增長;


    單例模式的用處


    1.單例模式可以應用在數據庫的操作類上


    2.單例模式可應用在網站的計數器上


    3.應用程序的日志應用,一般都使用單例模式實現,這一般是由于共享的日志文件一直處于打開狀態,因為只能有一個實例去操作,否則內容不好追加。


    4.Web應用的配置對象的讀取,一般也應用單例模式,這個是由于配置文件是共享的資源。


    每日分享技術干貨~

    報名卓象免費訓練營課程

    學習最新熱門IT技術

    找一份自己滿意的高薪工作

    15天免費學習??!

    卓象程序員

    ★ 零基礎,隨時體驗

    ★ 免費試聽,滿意后再報名

    ★ 小班授課,學習氛圍濃厚

    ★ 口碑相傳,80%學員來自口碑推薦

    ★ 教學嚴管,闖關式學習保障學習效果

    ★ 公司地點,哈爾濱市東直路123號7樓




    热99re久久精品|天天综合网久久综合免费人成|91久久久久久久精品青草| 亚洲AV无码无一区二区Ⅰ久久|
    <xmp id="cogkk"><nav id="cogkk"></nav>
    <dd id="cogkk"></dd>
  • <menu id="cogkk"><menu id="cogkk"></menu></menu>
    <menu id="cogkk"><code id="cogkk"></code></menu>