學習設計模式系列之“單例模式”


學習設計模式系列之“單例模式”

單例模式(也叫單件模式)的作用就是保證在整個應用程序的生命週期中,任何一個時刻,單例類的實例都只存在一個(當然也可以不存在)。


單例模式種類

餓漢式

聲明的同時直接實例化。

特點

加載類時比較慢,但運行時獲取對象的速度比較快,線程安全。

懶漢式

聲明的時候不實例化。

特點

加載類時比較快,但運行時獲取對象的速度比較慢,線程不安全。


實現單例模式的三個步驟

  • 將構造方法私有化,不允許外界直接創建對象。
  • 聲明類的唯一實例,使用private static修飾。
  • 提供一個供外界獲取實例的方法,使用public static修飾。

代碼實現

餓漢式java代碼實現

public class Singleton 
{
    // 餓漢模式
    // 1.創建類的唯一實例,使用private static修飾
    private static Singleton instance = new Singleton();

    // 2.構造函數設置成private,外界不能通過調用構造函數來創建對象
    private Singleton()
    {

    }
    // 3.提供一個用於獲取實例的方法,使用public static修飾
    public static Singleton getInstance()
    {
        return instance;
    }

}

懶漢式java代碼實現

public class Singleton_2
{
    // 懶漢模式
    // 1.創建類的唯一實例,使用private static修飾
    private static Singleton_2 instance = null;

    // 2.構造函數私有化,不允許外界通過構造函數生成對象
    private Singleton_2()
    {

    }

    // 3.提供一個用於獲取實例的方法,使用public static修飾
    public static Singleton_2 getInstance()
    {
        if (instance == null)
        {
            instance = new Singleton_2();
        }
        return instance;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章