懶漢模式——執行緒不安全寫法
//這種寫法不適合多執行緒下使用,多執行緒下有可能會被建立出多個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...