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

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

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

    laoding
    本來我以為,隱身了別人就找不到我,沒有用的,像我這樣拉風的男人,無論走到哪里,都像在黑暗中的螢火蟲一樣,那樣的鮮明,那樣的出眾。我那憂郁的眼神,稀疏的胡茬,那微微隆起的將軍肚和親切的笑容......都深深吸引了眾人......
    posts - 0,  comments - 37,  trackbacks - 0
    Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。

    在很多操作中,比如建立目錄 數據庫連接都需要這樣的單線程操作。

    還有, singleton能夠被狀態(tài)化; 這樣,多個單態(tài)類在一起就可以作為一個狀態(tài)倉庫一樣向外提供服務,比如,你要論壇中的帖子計數器,每次瀏覽一次需要計數,單態(tài)類能否保持住這個計數,并且能synchronize的安全自動加1,如果你要把這個數字永久保存到數據庫,你可以在不修改單態(tài)接口的情況下方便的做到。

    另外方面,Singleton也能夠被無狀態(tài)化。提供工具性質的功能,

    Singleton模式就為我們提供了這樣實現的可能。使用Singleton的好處還在于可以節(jié)省內存,因為它限制了實例的個數,有利于Java垃圾回收(garbage collection)。

    我們常常看到工廠模式中類裝入器(class loader)中也用Singleton模式實現的,因為被裝入的類實際也屬于資源。

    下面來看看例子

    public class Singleton {
        
        
    private static Singleton singleton = new Singleton();
        
        
    private Singleton() {
            System.out.println(
    "已產生對象實例。");
        }
        
        
    public static Singleton getInstance() {
            
    return singleton;
        }

    測試類
    public class Main {

        
    /**
         * 
    @param args
         
    */
        
    public static void main(String[] args) {
            
    // TODO Auto-generated method stub
            System.out.println("Start.");
            System.out.println(
    "start obj1");
            Singleton obj1 
    = Singleton.getInstance();
            System.out.println(
    "end obj1");
            
            System.out.println(
    "start obj2");
            Singleton obj2 
    = Singleton.getInstance();
            System.out.println(
    "end obj2");
            
            
    if(obj1 == obj2) {
                System.out.println(
    "對象是同一個對象");
            } 
    else {
                System.out.println(
    "對象不是同一個對象");
            }
            
            System.out.println(
    "End.");

        }

    }


    運行測試類,看到控制臺的輸出如下:
    Start....
    start obj1
    已產生對象實例。
    end obj1
    start obj2
    end obj2
    對象是同一個對象
    End....


    我們從上面開始看,在start obj1和end obj1直接輸出了“已產生對象實例”說明有對象產生了,而start obj2和end obj2之間卻沒有打印,為什么呢?因為取得obj2對象的時候并沒有再創(chuàng)建新的對象,而是去拿到跟obj1同一個對象,在Singleton類中已經創(chuàng)建了這個對象,并且是static的,這樣也就可以解釋后面的輸出“對象是同一個對象”這句話了。
    posted on 2009-10-14 15:13 老丁 閱讀(316) 評論(0)  編輯  收藏 所屬分類: 設計模式

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    本博客主為學習和復習之用,無關其他,想罵人的繞道
    Email:dkm123456@126.com
    大家一起交流進步
    QQ:283582761


    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿(4)

    我參與的團隊

    文章分類(50)

    文章檔案(48)

    相冊

    朋友

    搜索

    •  

    積分與排名

    • 積分 - 96426
    • 排名 - 600

    最新評論

    主站蜘蛛池模板: 色吊丝性永久免费看码| 亚洲精品国产suv一区88| 国产免费区在线观看十分钟| 拔擦拔擦8x华人免费久久| 亚洲 欧洲 视频 伦小说| 丁香花免费完整高清观看 | 久久精品a一国产成人免费网站 | 亚洲色无码专区在线观看| fc2免费人成在线视频| 久久亚洲高清综合| 大妹子影视剧在线观看全集免费 | 亚洲国产综合精品中文字幕| 免费无遮挡无遮羞在线看| 亚洲色偷拍区另类无码专区| 两个人的视频www免费| 亚洲欧洲第一a在线观看| 国产91免费视频| 亚洲综合精品伊人久久| 国产jizzjizz视频免费看| 一级女性全黄久久生活片免费 | 亚洲av无码片区一区二区三区| 免费观看的a级毛片的网站| 牛牛在线精品免费视频观看| 亚洲熟妇丰满多毛XXXX| 久久不见久久见免费视频7 | 国产真实伦在线视频免费观看| 免费国产高清毛不卡片基地| 国产成人A人亚洲精品无码| xxxxx免费视频| 国产AV日韩A∨亚洲AV电影| 国产v亚洲v天堂无码网站| 台湾一级毛片永久免费| 男女污污污超污视频免费在线看| 久久精品国产精品亚洲精品 | 亚洲日韩精品无码专区加勒比| 亚洲国产成人久久笫一页| 免费无码成人AV在线播放不卡| 亚洲中文字幕乱码熟女在线| 亚洲永久精品ww47| 成年丰满熟妇午夜免费视频| 一区二区三区免费高清视频|