單例模式的實現策略

2021-09-28 23:17:44 字數 1587 閱讀 3343

懶漢模式——執行緒不安全寫法

//這種寫法不適合多執行緒下使用,多執行緒下有可能會被建立出多個singleton例項

public

class

singleton

//靜態方法構造物件並返回

public

static singleton getinstance()

return instance;

}}

懶漢模式——執行緒安全寫法

//例項化物件的方法加入同步關鍵字宣告,使得執行緒安全

public

class

singleton

//在同步方法中建立例項物件,多執行緒時安全。

public

static

synchronized singleton getinstance()

return instance;

}}

懶漢模式——雙重鎖檢查

/**

* 雙重鎖檢查機制:

* 建立物件例項的方法中檢查兩次物件是否為空

* 加鎖之後在檢查一次

* volatile:保證了記憶體可見性

*/public

class

singleton

public

static singleton getsingleton()

}}return singleton;

}}

餓漢模式

public

class

singleton

public

static singleton getinstance()

}

餓漢模式——變種寫法

public

class

singleton

private singleton (

)public

static singleton getinstance()

}

靜態內部類

/**

*singleton類被裝載instance不一定被初始化,因為內部類singletonholder沒有被主動使用,只有顯示*呼叫getinstance才會顯示裝載singletonholder 類,從而例項化instance

*/public

class

singleton

private singleton (

)public

static

final singleton getinstance()

}

列舉

/**

*列舉(既可以避免多執行緒同步問題,還可以防止被反序列化重建物件)

*/public

enum singleton

public

static

void

main

(string[

] args)

}

設計模式 策略模式單例模式

策略模式 物件使用的演算法是變化的,物件是穩定的 將穩定和穩定的部分隔離開 面向介面程式設計 之後使用工廠模式單例模式 系統中特殊的類 只能出現乙個例項 設計一種方法 只能發回乙個物件 繞過常規的構造器 只提供乙個物件 方法 1.建構函式 和 拷貝函式都寫成private的 遮蔽系統的建構函式 2....

設計模式 工廠,單例,策略

介紹 工廠模式 factory 屬於建立型模式,它提供了一種建立物件的最佳方式。在工廠模式中,我們在建立物件時不會對客戶端暴露建立邏輯,並且是通過使用乙個共同的介面來指向新建立的物件。何時使用 我們明確地計畫不同條件下建立不同例項時。如何解決 讓其子類實現工廠介面,返回的也是乙個抽象的產品。使用場景...

單例模式的實現

單例設計模式保證類在記憶體中只存在乙個物件。根據不同的策略,單例類的實現有以下幾種方式。1.立即載入 在載入類的同時例項化物件,設計要點如下 1 私有化構造方法 2 宣告並例項化本類物件 靜態 3 提供公有靜態方法獲取物件。code 1 public class eagersingleton oth...