設計模式 單例模式

2021-06-02 20:11:15 字數 1041 閱讀 4905

單例模式(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 另一種實現單例模式的方法如下,這種方法在多執...