PHP單例模式

單例模式確保某個類只有一個實例,而且自行實例化並向整個系統提供這個實例。

爲什麼使用單例模式呢
使用單例模式可以避免大量的new操作。因爲每一次new操作都會消耗系統和內存的資源。

**單例模式特點(三私一公)
私有的構造方法 (防止類外實例化)
私有的克隆方法 (防止通過克隆生成對象)
私有的靜態屬性 (保存類的實例)
公有的靜態方法 (調取這個類相當一個接口 )**

<?php
/*
     *describe:單例模式
    */

    header("content-type:text/html;charset=utf-8");
    //final 修飾類  不可被繼承  最終的類
    final class Single{
        //$self 靜態私有變量 實例化後賦值
        static private $self = NULL;

        private $num = 0;  

        private function __construct(){
            $this->num += 1;
            echo "實例化成功<br/>";
        }
        //防止被克隆
        private function __clone(){
            die("實例化失敗");
        }

        //靜態公有接口
        static public function getInstanceof(){
            //判斷對象是否已實例化
            if(!self::$self instanceof self){
                self::$self = new self();
                return self::$self;
            }else{
                return self::$self;
            }
        }
        public function getnum(){
            return $this->num."<hr/>";
        }
    }
?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章