優點
缺點頻繁使用(建立與銷毀),資源占用較多,例項化消耗大且耗時長,通過共享單例,加快物件的訪問速度;
類要求只生成乙個例項的場景;
需要單一控制邏輯的操作。
具體如 多執行緒執行緒池、網路連線池、訪問資料庫或者檔案的物件等等。
結構主要角色: 實現
懶漢式實現
實現特點: 該模式的特點是類載入時沒有生成單例,只有當第一次呼叫getlnstance 方法時才去建立這個單例。
public
class
lazysingleton
// getinstance 方法前加同步
public
static
synchronized lazysingleton getinstance()
return instance;
}}
2. 餓漢式實現
實現特點: 該模式的特點是類一旦載入就建立乙個單例,保證在呼叫 getinstance 方法之前單例已經存在了。
public
class
hungrysingleton
public
static hungrysingleton getinstance()
}
餓漢式單例在類建立的同時就已經建立好乙個靜態的物件供系統使用,以後不再改變,所以是執行緒安全的,可以直接用於多執行緒而不會出現問題。
一般可拓展為有限多例模式。
結構類圖結構:
實現
public
class
multiton
}// 私有構造類避免類在外部被例項化
private multiton (
)// getinstance 方法前加同步
public
static
synchronized multiton getrandominstance()
}
設計模式 建立型模式 單例模式
類載入時建立物件 常量 class eagersingleton public static eagersingleton getinstance 延遲載入 假如在某一瞬間 執行緒a 和 執行緒b 都在呼叫getinstance 方法,此時instance物件為null值,均能通過instance ...
設計模式建立型模式 單例模式
單例模式 singletonparrten 保證乙個類只有乙個例項,並提供乙個訪問它的全域性訪問點 建立單例模式需要三方面操作 1.建立乙個物件 2.定義乙個私有構造方法 禁止外部類對其進行例項化 3.提供乙個對外訪問的方法 單例模式可以通過懶漢式和餓漢式來實現。懶漢式 執行緒不安全 懶漢式 單例模...
設計模式 建立型模式 單例模式
亦稱 單件模式 singleton 單例模式是一種建立型設計模式,讓你能夠保證乙個類只有乙個例項,並提供乙個訪問該例項的全域性節點。單例模式同時解決了兩個問題,所以違反了 單一職責原則 1.保證乙個類只有乙個例項。2.為該例項提供乙個全域性訪問節點 所有單例的實現都包含以下兩個相同的步驟 如果你的 ...