單例設計模式的幾種實現方法

2021-09-18 05:53:24 字數 1595 閱讀 8091

/**

* @author lais

* */

public class ehansingle

//私有化靜態物件,並直接建立,強調單例時可以用final修飾

private final static ehansingle single = new ehansingle();

//提供外界獲取方式

public static ehansingle getinstance()

//測試

public static void main(string args)

}

/**

* 列舉類餓漢式

* 列舉型別:表示該物件是有限的幾個,我們限定為乙個,就是單例了

* @author lais

* */

public enum ehanenum

}

/**

* 靜態**塊餓漢式:使用與複雜場景

* @author lais

* */

public class ehansingle2

//私有化靜態物件,並直接建立

private static final ehansingle2 single ;

static

//提供外界獲取方式

public static ehansingle2 getinstance()

//測試

public static void main(string args)

}

/**

* @author lais

* */

public class lanhansingle

private static lanhansingle single;

public static lanhansingle getinstance()

}

/**

* @author lais

* */

public class lanhansingle2

private static lanhansingle2 single;

public static lanhansingle2 getinstance()

} return single;

}}

/**

* 在內部類被載入和初始化時,才建立instance例項物件

* 靜態內部類不會自動隨著外部類的載入和初始化而初始化,它是單獨去載入和初始化的

* 因為是在內部類載入和初始化時,建立的,因此時執行緒安全的

* @author lais

* */

public class innersingle

private static class inner

public static innersingle getinstance()

}

使用餓漢式時,列舉方式最簡單

使用懶漢式時,靜態內部類方式最簡單

單例設計模式的幾種常見實現方法

總結 單例可以說是gof23中最簡單的一種設計模式,也經常用到。比如window的任務管理器,比如servlet物件等等。單例要完成的就是確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個唯一的例項。就像它的定義 ensure a class has only one instance,a...

設計模式 單例模式的幾種實現方式

1.概述 單例模式 簡單的說就是可以確保只產生乙個類例項,讓多個使用者或者多個執行緒同時使用這乙個例項,而不需要每次使用都建立一次物件。2.優缺點和適用場景 3.幾種不同形式的單例模式 class singleclass public static singleclass getinstance 這...

實現單例模式的幾種方法

public class singleclass public static singleclass getinstance 2 懶漢式 類在被載入時不會被初始化,當第一次被使用時進行初始化,為保證單例,可以使用sychronized關鍵字確保執行緒安全,但是每次呼叫時都會同步。public cla...