設計模式 單例模式

2021-09-29 19:51:19 字數 1106 閱讀 5641

單例模式思維導圖

設計模式-單例模式

1、定義

保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。

(其關鍵是將類的構造方法設定為 private 許可權,保證任何其他類無法使用單件類來建立物件;並提供乙個返回它唯一例項的類方法(static 方法)。)

2、分類&別名

分類:建立型模式

別名:單件模式

3、優點

優點:單件類的唯一例項由單件類本身控制,可以很好的控制其他類使用者何時訪問它;

縮小命名空間,避免命名汙染;

允許單例有子類;

允許可變數目的例項。

4、適用場景

當系統需要某個類只能有乙個例項。

5、uml類圖

6、餓漢式&懶漢式

餓漢式:在程式啟動或單件類被載入時,單件模式例項就已經被建立。

懶漢式:當程式第一次訪問單件模式例項才能進行建立。

7、**實現

// 餓漢式:在程式啟動或單件類被載入時,單件模式例項就已經被建立。

public

class

singleton

public

static singleton getinstance()

}// 懶漢式:當程式第一次訪問單件模式例項才能進行建立。

public

class

singleton

// 加synchronized 執行緒安全,在多執行緒下不能正常工作

// 不加synchronized 執行緒不安全,效率低,一般不需要同步

public

static

synchronized singleton getinstance()

}// 得到單件類的唯一例項:

singleton s = 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的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...