<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    佳麗斯 加厚雙人/單人秋冬被子暖冬 羊毛被芯羊毛柔絲被特價包郵 憂憂魚冬外穿打底褲女秋冬厚長褲女褲加絨加厚高腰彈力鉛筆褲靴褲 韓國代購2013新款 韓版秋冬休閑女時尚磨破口袋衛(wèi)衣韓版學(xué)生裝 潮

    有時,退一步,能一口氣進幾步,只是這先退一步需要勇氣和自信。

    用心愛你,努力工作。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      70 隨筆 :: 1 文章 :: 33 評論 :: 0 Trackbacks

    單例模式 有以下的特點:

    1. 單例類只能有一個實例。
    2. 單例類必須自己創(chuàng)建自己的唯一的實例。
    3. 單例類必須給所有其他對象提供這一實例。

    代碼:

    Singleton.php :

    <?php
    class Singleton
    {
        private static $instance;

        private function __construct()
        {
        }

        public static function getInstance()
        {
            if(self::$instance == null)
            {
                self::$instance = new Singleton();
            }

            return self::$instance;
        }
    }
    ?>

    在使用的時候,因為構(gòu)造方法是private(私有)的,所以是不能直接實例化的,必須使用類似下面的方法:

    例子:

    <?php
    require_once('Singleton.php ');

    $instance = Singleton::getInstance();
    ?>

    ============================================

    其它關(guān)于靜態(tài)的說明

    靜態(tài)成員.
    他在類被聲明時就產(chǎn)生了,也就是在程序編譯階段產(chǎn)生的,它只有一個所有該類實例共享的原本,任何該類實例更改靜態(tài)變量的值后,其它該類實例再去訪問該靜態(tài)變量,其值已經(jīng)變成更改后的值,因為其在內(nèi)存,就存一個原本。
    非靜態(tài)成員是在類實例化時產(chǎn)生的,你new一個該類實例,系統(tǒng)就會為該類實例的所有非靜態(tài)成員新開辟一個空間,每個實例都只能自己的非靜態(tài)成員。(有多少個類的實例,就要開辟多少個非靜態(tài)成員的空間)

    單例類全局只有一個實例,你可以把它看成全局對象。

    從底層來說,編譯完成后主要是兩個部分,一是CPU指令,這一部分包含各種方法;二是數(shù)據(jù),也就是程序定義的各種類型的變量。運行程序?qū)嵗粋€對象時,按如下方式分配內(nèi)存:
    1。在程序啟動時將靜態(tài)數(shù)據(jù)和靜態(tài)方法放入堆內(nèi)存中。
    2。第一次實例化對象時將其它方法放入代碼段中。
    3。每次實例化對象時將其它數(shù)據(jù)放入棧內(nèi)存中。
    實例化同一個對象時,上述1、2項不動,只是再加一個第3項即可。銷毀一個實例的時候,如果還有其它的實例存在,就只釋放該實例的棧數(shù)據(jù)段(上述第3項)。

    根據(jù)以上原理回答您的問題
    靜態(tài)方法和數(shù)據(jù)一般都是Public型的,用于類的極普遍的事物處理,可以在程序的任意地方調(diào)用,在整過程序運行過程中始終占用計算機內(nèi)存,一搬少用。如果一個程序中的各個對象都用一個數(shù)據(jù)庫的話,可以使用靜態(tài)方法連接。

    單件模式的實例銷毀時可以釋放所有的非靜態(tài)方法和數(shù)據(jù),,如果把這個類的所有方法都設(shè)計為靜態(tài)的,這些方法將一直占用內(nèi)存,浪費資源,不可取。

    在new一個對象時,只是加一個數(shù)據(jù)段,并不重新加載方法和靜態(tài)變量。

    最后說一個變量傳送的問題,網(wǎng)上很多朋友在回答類之間參數(shù)傳遞時都說用靜態(tài)變量,我認為這種方法不好,本來加類的目的就是為了封裝,如果用一個類似于全局變量的靜態(tài)變量作為參數(shù)就大大削弱了封裝的意義。

    實際上,系統(tǒng)和應(yīng)用程序?qū)?nèi)存的管理相當(dāng)復(fù)雜.
    =======================下面摘自思歸的文字

    從表面上看,靜態(tài)(static)成員可以通過 類名.成員名 來直接調(diào)用,而實例(instance)成員需要生成一個對象后才能調(diào)用。同一個操作,性能當(dāng)然靜態(tài)成員好

    但其實區(qū)別是跟對象設(shè)計有關(guān)的,一般來說實例成員跟實例的狀態(tài)有關(guān),某個方法的調(diào)用可能需要訪問當(dāng)前對象的狀態(tài),并改變其狀態(tài),從而影響其他方法的結(jié)果

    而靜態(tài)成員是跟類本身有關(guān),與單獨的實例狀態(tài)無關(guān)。但靜態(tài)成員不要太多了,否則就淪為以前的procedural programming風(fēng)格了,也許對象需要重新設(shè)計或重構(gòu)。

    靜態(tài)成員往往會在多線程下操作,需要做同步化控制

    posted on 2008-11-15 17:52 王生生 閱讀(543) 評論(0)  編輯  收藏 所屬分類: PHP
    森露2013新款豹紋打底衫 高領(lǐng) 女 長袖 修身長袖t恤女 加絨加厚冬 2013春秋新款女裝 潮修身大碼長袖小西裝外套女 韓版中長款小西裝 憂憂魚2013秋冬新款直筒褲女顯瘦長褲加絨黑色休閑褲修身西褲女褲
    主站蜘蛛池模板: 久久成人免费播放网站| 免费看美女被靠到爽的视频| 亚洲精品综合久久中文字幕| 成人免费无遮挡无码黄漫视频| 直接进入免费看黄的网站| 国产v亚洲v天堂无码网站| 青青青国产在线观看免费网站| 国产成人+综合亚洲+天堂| 亚洲高清国产拍精品26U| 特级做A爰片毛片免费69 | 亚洲av成人无码久久精品| 91黑丝国产线观看免费| 日本高清免费中文在线看| 亚洲综合在线视频| 又黄又爽的视频免费看| 亚洲视频免费观看| 一级午夜免费视频| 97久久国产亚洲精品超碰热| 成人午夜亚洲精品无码网站| 女性无套免费网站在线看| 午夜免费福利视频| 污污的视频在线免费观看| 亚洲第一成年网站大全亚洲| AV在线播放日韩亚洲欧| 成人免费男女视频网站慢动作 | 五月天婷亚洲天综合网精品偷| 最近中文字幕大全中文字幕免费| 四虎影视在线看免费观看 | 久久午夜无码免费| 老妇激情毛片免费| 亚洲人成影院在线高清| 亚洲精品无码久久久影院相关影片| 韩国欧洲一级毛片免费| 亚洲视频免费在线看| 久久免费精品视频| 成人国产网站v片免费观看| 亚洲欧洲日韩极速播放| 亚洲婷婷天堂在线综合| 久久久婷婷五月亚洲97号色 | 亚洲自偷自偷在线成人网站传媒 | 亚洲av专区无码观看精品天堂|