乙個類只有乙個物件例項。
class
singleton
;private
static singleton instance=null;
public
static singleton getinstance()
}
幾點說明:
首先,singleton類的建構函式設定為private型別,這樣在類的外部就無法通過new的方式新建立該類的物件,保證類的物件只能在類的內部通過乙個靜態函式供外部呼叫(此處不考慮反射情況)。
其次,通過靜態函式供外部呼叫,那麼singleton的物件例項屬性也要設定為靜態的,(靜態函式只能操作類的靜態屬性)。
這樣,我們就實現了類乙個單例(單身漢)模式。可是,它不是執行緒安全的,在併發的時候,會出錯。可以通過synchronized或者lock等進行加鎖同步,但這不是最佳的方法,加鎖、釋放鎖的過程都會消耗時間。
在類載入的時候,就主動建立類的例項,靜態方法直接返回這個例項物件。既簡單又安全。
class
singleton
;private
static
final singleton instance=
newsingleton()
;public
static singleton getinstance()
}
設計模式 單例模式
單例模式 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 ...
設計模式 單例模式
單例模式的目的是保證類在系統中只被例項化一次,由該唯一的例項來為系統提供服務.單例模式主要用於保證服務的統一,比如獲取統一的編號服務,模仿oracle的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...