單例模式:乙個類只允許生成乙個例項,並提供乙個訪問它的全域性訪問點。
1private
static
singleton instance;23
///4
///構造方法私有化,不讓外界new新的例項,
5///
6private
singleton()79
10///
11///
獲得例項的唯一乙個全域性訪問點
12///
13///
14public
static
singleton getinstance()
1520
return
instance;21}
22 }
注意事項:
多執行緒時的單例:多個執行緒同時訪問時可能會造成多個單例。
1.懶漢式單例類:在第一次被引用時才將自己例項化
方法1:lock鎖
1class
singleton213
14///
15///
獲得例項的唯一乙個全域性訪問點
16///
17///
18public
static
singleton getinstance()
1926}27
return
instance;28}
29 }
方法二:雙重鎖定(double-check locking)。方法一中每次進來都需要上鎖,程式效率降低。
1class
singleton213
14///
15///
獲得例項的唯一乙個全域性訪問點
16///
17///
18public
static
singleton getinstance()
1929}30
}31return
instance;32}
33 }
2.餓漢式單例類:被載入時就將自己例項化。
1//阻止派生,派生可能增加新的例項
2public
sealed
class
singleton310
public
static
singleton getinstance()
1114 }
14 單例模式筆記
單例模式 程式執行時,讓乙個類只能建立乙個物件 餓漢式 單例模式 餓漢式 public class singletonhungary 2.建立當前類的物件 private static singletonhungary s newsingletonhungary 3.對外提供公共訪問方法將singl...
設計模式 單例模式
單例模式 singleton pattern 是乙個比較簡單的模式,其定義如下 ensure a class has only one instance,and provide a golbal point of acess to it.確保某乙個類只有乙個例項,而且自行例項化並且向整個系統提供這個...
設計模式 單例模式
class testsingleton static public function instance return self testsingleton private function clone public function setsinvar sinvar public function ...