1. 程式人生 > >設計模式(Java)-003-單例模式-餓漢式

設計模式(Java)-003-單例模式-餓漢式

  • 餓漢式(執行緒安全、呼叫效率高、但是不能延遲載入)
    1.執行緒安全:在類載入時完成物件的建立
    2.呼叫效率高:getInstance沒有任何同步限制
    3.不能延遲載入:正是因為在類載入時就完成了物件的建立

  • 步驟:
    1.構造器私有
    2.提供靜態私有的物件
    3.提供一個靜態公有方法,獲取靜態私有物件

  • 說明:

    1. static屬性會在類裝載時進行初始化,此時並不會設計到多執行緒問題。虛擬機器保證只會裝載一次該類,所以是執行緒安全的。
      2.如果只是載入類本身,並不需要使用到這個單例的物件,那麼會造成資源浪費。

測試程式碼

package top.itcourse.gof23;

/**
 * 餓漢式單例模式建立步驟:
 *      1.構造器私有
 *      2.提供靜態私有的物件
 *      3.提供一個靜態公有方法,獲取靜態私有物件
 *
 *  說明:
 *      1.物件建立時機:
 *          static屬性會在類裝載時進行初始化,此時並不會設計到多執行緒問題。虛擬機器保證只會裝載一次該類,
 *          所以是執行緒安全的。
 *       2.缺點:
 *          如果只是載入類本身,並不需要使用到這個單例的物件,那麼會造成資源浪費。
 */
public class SingletonHungry { // 1.私有構造器 private SingletonHungry() { } // 2.提供靜態私有的物件 private static SingletonHungry sh = new SingletonHungry(); // 3.提供一個靜態公有方法,獲取靜態私有物件 public static SingletonHungry getInstance() { return sh; } }

其它



原始碼下載:

關注下方微信公眾號,
回覆:
DM.code

完整教程PDF版本下載