單例模式(singleton pattern)是乙個比較簡單的模式,其定義如下:
ensure a class has only one instance,and provide a golbal point of acess to it.(確保某乙個類只有乙個例項,而且自行例項化並且向整個系統提供這個例項。)
如何保證乙個類只能產生乙個物件呢?物件產生是通過new關鍵字完成的,使用new關鍵字建立物件都會根據輸入引數呼叫相應的建構函式,如果我們把建構函式設定為private私有訪問許可權不就可以防止外部建立物件了呀!
單例模式的乙個例項如下:
singleton類成為單例類,通過使用private的建構函式確保了在乙個應用中只產生乙個例項,並且是自行例項化的(在singleton中自己使用 new singleton()).單例模式的通用源**如下:
單例模式例項**:
singleton類:
public class singleton
//通過該方法獲得例項物件
public static singleton getsingleton()
//其他類方法,盡量是static
public static void dosomething()
}
client類:
public class client
//只建立了乙個例項
}}
單例模式優點:
單例模式缺點:
單例模式使用場景:
在乙個系統中,要求乙個類有且只有乙個物件,如果出項多個物件就會出現不良反應,可以採用單例模式,具體場景如下:
注意事項:
執行緒安全
參考:《設計模式之禪》
設計模式 單例模式
class testsingleton static public function instance return self testsingleton private function clone public function setsinvar sinvar public function ...
設計模式 單例模式
單例模式的目的是保證類在系統中只被例項化一次,由該唯一的例項來為系統提供服務.單例模式主要用於保證服務的統一,比如獲取統一的編號服務,模仿oracle的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...
設計模式 單例模式
1 單例模式 singleton 乙個類只能生成乙個物件。2 如下 是單例模式實現的一種方法 public class singletontest class singleton public static singleton getinstance 3 另一種實現單例模式的方法如下,這種方法在多執...