設計模式 從入門到日門(一) 單例模式

2021-10-08 08:31:27 字數 1025 閱讀 8610

單例模式(singleton pattern):無法直接new物件,只能通過該類提供的全域性訪問點直接建立或返回乙個該類的唯一物件。

public

class

hungersingleton

// 獲取唯一可用物件

public

static hungersingleton newinstance()

}

由於餓漢模式在類載入後就會直接建立,當使用單例的類可能會很多時,會造成資源浪費,所以有了懶漢模式。

懶漢一

public

class

lazysingleton

public

static lazysingleton newinstance()

return instance;

}}

上面是乙個簡單的懶漢模式,問題是不支援多執行緒。

懶漢二

public

class

lazysingleton

public

static

synchronized lazysingleton newinstance()

return instance;

}}

加上synchronized後解決了執行緒安全問題,但是加在方法上效能影響較大,改進如下:

public

class

lazysingleton

public

static lazysingleton newinstance()

}}return instance;

}}

懶漢三

基於類初始化延遲載入獲取物件,也是執行緒安全的:

public

class

singleton

public

static singleton newinstance()

}

設計模式入門 單例模式

1.什麼是單例模式?就是整個類就有乙個例項,並提供乙個訪問它的全域性訪問點。2.單例模式的存在形式?飢漢模式 飽漢模式,雙重鎖模式 圖3.類結構圖 圖1.飢漢模式 public class singletonhungry public static singletonhungry getinstan...

設計模式 從單例模式談起

1,什麼是單例模式?2,為什麼要有單例模式?3,單例模式的特點 4,單例模式的優點 5,單例模式的缺點 7,單例模式的三種實現方式 public class singleton public static synchronized singleton getinstence return singl...

設計模式 一 單例模式

思路 1 如果其他程式能夠隨意用new建立該類物件,那麼就無法控制個數。因此,不讓其他程式用new建立該類的物件。2 既然不讓其他程式new該類物件,那麼該類在自己內部就要建立乙個物件,否則該類就永遠無法建立物件了。3 該類將建立的物件對外 整個系統 提供,讓其他程式獲取並使用。步驟 1 將該類中的...