定義:保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。
好處:1.保證唯一的例項 2.可以嚴格控制客戶怎樣訪問它以及何時訪問,即對唯一例項的受控訪問
第一版:
classsingleton
//構造方法讓其private,堵死外界利用new建立此類例項的可能
public
static
singleton getinstance()
return
instance;
}}
第二版:多執行緒時
classsingleton
//構造方法讓其private,堵死外界利用new建立此類例項的可能
public
static
singleton getinstance()
}return
instance;
}}
第三版:雙重鎖定(因每次呼叫getinstance()方法都需要lock,會影響效能)
public sealed class singleton //阻止派生類//構造方法讓其private,堵死外界利用new建立此類例項的可能
public
static
singleton getinstance()}}
return
instance;
}}
第二個為null判斷的原因:當instance=null並且同時有兩個執行緒呼叫getinstance()方法時,他們可以通過第一重=null判斷,然後由於lock機制只有乙個進入,另乙個在外排隊等候。第乙個完成之後,如果沒有第二重=null操作,第二個執行緒還可以建立例項。
設計模式之單例模式
前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會23種設計模式並且會熟練運用的人,真的就是大師級的牛人了,設計模式是乙個專案主管或者架構師一定要會的東西...
設計模式之單例模式
package com.xie.singleton public class singleton 提供乙個共有的靜態的入口方法 public static singleton getinstance 懶漢式 延遲載入 提供乙個私有的靜態的成員變數,但不做初始化 private static sing...
設計模式之 單例模式
單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單例模式 單件模式 使用方法返回唯一的例項 public class singleton private static singleton instance public static singleton geti...