java設計模式之【單例模式】

一、單例模式介紹

單例模式(Singleton Pattern)是 Java 中最簡單的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。

這種模式涉及到一個單一的類,該類負責創建自己的對象,同時確保只有單個對象被創建。這個類提供了一種訪問其唯一的對象的方式,可以直接訪問,不需要實例化該類的對象。

主要解決:一個全局使用的類頻繁地創建與銷燬。
關鍵代碼:將構造函數私有化。

二、代碼實現

1. 餓漢式-線程安全

public class Singleton {
    private static final Singleton SINGLETON = new Singleton();

    //限制產生多個對象
    private Singleton() {
    }

    //暴露出實例對象
    public static Singleton getSingleton() {
        return SINGLETON;
    }

    //其他方法,推薦使用static修飾
    public static void otherMethod() {

    }

}

2. 懶漢式-線程不安全

public class Singleton2 {
    private static Singleton2 singleton2 = null;

    private Singleton2() {

    }

    //獲取對象時實例化該對象
    public static Singleton2 getSingleton2() {
        if (singleton2 == null) {
            singleton2 = new Singleton2();
        }
        return singleton2;
    }
}

3. 懶漢式-線程安全

使用synchronized關鍵字修飾,保證線程安全。

public class Singleton3 {
    private static Singleton3 singleton3 = null;

    private Singleton3() {

    }

    public static synchronized Singleton3 getSingleton3() {
        if (singleton3 == null) {
            singleton3 = new Singleton3();
        }
        return singleton3;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章