<strike id="rrvnz"></strike>

    <noframes id="rrvnz">
    <noframes id="rrvnz"><span id="rrvnz"><pre id="rrvnz"></pre></span><address id="rrvnz"></address>
    <address id="rrvnz"><nobr id="rrvnz"></nobr></address><noframes id="rrvnz">
      <em id="rrvnz"></em>

        首 頁IT知識庫翔宇問吧收藏本站
        當前位置:翔宇亭IT樂園IT知識庫WEBPHP

        PHP設計模式:單例模式(Singleton)

        減小字體 增大字體 作者:佚名  來源:轉載整理  發布時間:2016-02-01 13:33:10

        單例模式,即某個類只有一個實例。通過單例模式可以保證系統中一個類只有一個實例而且該實例易于外界訪問,從而方便對實例個數的控制并節約系統資源。如果希望在系統中某個類的對象只能存在一個,單例模式是最好的解決方案。

        要實現這一點,可以從客戶端對其進行實例化開始。因此需要用一種只允許生成對象類的唯一實例的機制,“阻止”所有想要生成對象的訪問。

        對于系統中的某些類來說,只有一個實例很重要,例如,一個系統中可以存在多個打印任務,但是只能有一個正在工作的任務;一個系統只能有一個窗口管理器或文件系統;一個系統只能有一個計時工具或ID(序號)生成器。如在Windows中就只能打開一個任務管理器。如果不使用機制對窗口對象進行唯一化,將彈出多個窗口,如果這些窗口顯示的內容完全一致,則是重復對象,浪費內存資源;如果這些窗口顯示的內容不一致,則意味著在某一瞬間系統有多個狀態,與實際不符,也會給用戶帶來誤解,不知道哪一個才是真實的狀態。因此有時確保系統中某個對象的唯一性即一個類只能有一個實例非常重要。

        顯然單例模式的要點有三個;一是某個類只能有一個實例;二是它必須自行創建這個實例;三是它必須自行向整個系統提供這個實例。

        從具體實現角度來說,就是以下三點:一是單例模式的類只提供私有的構造函數,二是類定義中含有一個該類的靜態私有對象,三是該類提供了一個靜態的公有的函數用于創建或獲取它本身的靜態私有對象。

        在PHP中實現單例模式的源代碼如下一種形式:

        1 <?php
        2 /**
        3 * 單例模式
        4 *
        5 * 保證一個類僅有一個實例,并提供一個訪問它的全局訪問點
        6 *
        7 */
        8 class Singleton
        9 {
        10 staticprivate$_instance=null;
        11
        12 privatefunction __construct()
        13 {
        14 }
        15
        16 staticpublicfunction getInstance()
        17 {
        18 if(is_null(self::$_instance)) {
        19 self::$_instance=new Singleton();
        20 }
        21 return self::$_instance;
        22 }
        23
        24 publicfunction display()
        25 {
        26 echo"it is a singlton class function";
        27 }
        28 }
        29
        30 // $obj = new Singleton(); // 聲明不能成功
        31 $obj= Singleton::getInstance();
        32 var_dump($obj);
        33 $obj->display();
        34
        35 $obj1= Singleton::getInstance();
        36 var_dump(($obj===$obj1));

         以上內容來源于百度百科和cnblog.com(http://www.cnblogs.com/bluefrog/archive/2011/06/15/2081789.html)

        知識評論評論內容只代表網友觀點,與本站立場無關!

           評論摘要(共 0 條,得分 0 分,平均 0 分) 查看完整評論

        用戶名: 查看更多評論

        分 值:100分 85分 70分 55分 40分 25分 10分 1分

        內 容:

                    請注意用語文明且合法,不要發布帶有攻擊性、侮辱性的言論,謝謝合作!

                 通知管理員 驗證碼:

        關于本站 | 網站幫助 | 廣告合作 | 網站聲明 | 友情連接 | 網站地圖 | 用戶守則 | 聯系我們 |
        本站大多數內容來自互聯網或網站會員發布,如有侵權,請來信告之,謝謝!
        Copyright © 2007-2017 biye5u.com. All Rights Reserved.
        網站備案號:黑ICP備13005378號-3
        特黄特色三级在线观看 - 视频 - 在线观看 - 影视资讯 -心晴网