設計模式 單例模式

2021-09-11 20:28:55 字數 1393 閱讀 1047

首先我們先了解一下設計模式是什麼呢?

設計模式(design pattern):是一套被反覆使用、多數人知曉的、經過分類編目的、**設計經驗的總結。

使用設計模式的目的:使用設計模式是為了可重用**、讓**更容易被他人理解、保證**可靠性。

首先我們先來認識一下最簡單的單例模式單例模式是什麼呢?

單例模式:我們可以把它看做乙個皇帝,我們古代的皇帝有且乙個,因為一山容不下二虎,如果有第二個就會導致很多問題。比如說我們當代的老婆一樣,老婆只需要乙個就可以了,如果多了乙個就會出現複雜的問題。

有些物件我們只需要乙個,比如:

配置檔案、工具類、執行緒池、快取、日誌物件等。

如果創造出多個例項,就會導致許多問題,比如占用過多資源,不一致的結果等。

常用的單例模式有兩種:

餓漢模式

懶漢模式

餓漢模式的特點是載入類時比較慢,但執行時獲取物件的速度比較快

class singleton()

//2.建立類的唯一例項,使用private static修飾符

private static singleton instance = new singleton();

//3.提供乙個用於獲取例項的方法 使用public static修飾符才可以在其他地方呼叫

public static singleton getinstance() }

呼叫方法

var s1 = singleton.getinstance();

var s2 = singleton.getinstance();

console.log(s1==s2); 輸出為true,是同乙個例項

如果用new singleton();這是就會報錯,因為只能有乙個例項。

懶漢模式的特點是載入類時比較快,但執行時獲取物件的速度比較慢

class singleton2

//2.宣告類的唯一例項,使用private static修飾

private static singleton2 instance;

//3…提供乙個用於獲取例項的方法 使用public static修飾符

public static singleton2 getinstance()

return instance;

}呼叫懶漢模式

var s3= singleton.getinstance();

var s4 = singleton.getinstance();

console.log(s3==s4); 輸出為true,是同乙個例項

設計模式 單例模式

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