設計模式 一 單例模式

2021-10-01 19:27:46 字數 1132 閱讀 9578

instance;

public void sayok() }

優點:天生能避免執行緒同步問題,而且還能防止反序列化重新建立新物件。

//構造器私有化,外部不能new

//定義物件變數,注意使用的volatile關鍵字

//靜態內部類

private static class singleinstance

//獲取值

return singleinstance.instance;

}} 優點:避免了執行緒不安全,且可以實現懶載入,效率高

//構造器私有化,外部不能new

//定義物件變數,注意使用的volatile關鍵字

//對外提供get方法,獲取這個類,雙重檢查

//解決了執行緒不安全,懶載入、效率低這三個問題

if(instance == null) }}

return instance;

}} 優點:執行緒安全、懶載入、效率高

//構造器私有化,外部不能new

//在本類中建立物件

//對外提供get方法,獲取這個類

return instance;

}} 優點:執行緒安全,程式啟動是就例項化

缺點:如果該類沒有被呼叫,造成記憶體空間浪費。如果該類是乙個重類,增加程式啟動時間。

//構造器私有化,外部不能new

//定義物件變數

//靜態**塊建立例項

static

//對外提供get方法,獲取這個類

return instance;

}} 優缺點和第四一樣,只是換種寫法

//構造器私有化,外部不能new

//定義物件變數

//對外提供get方法,獲取這個類

if(instance == null)

return instance;

}} 優點:解決了不能懶載入問題

缺點:執行緒不安全

//構造器私有化,外部不能new

//定義物件變數

//對外提供get方法,獲取這個類,同步方法,解決執行緒安全

if(instance == null)

return instance;

}} 優點:執行緒安全,實現懶載入

缺點:效率低

設計模式 一 單例模式

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

設計模式(一) 單例模式

這種模式只涉及到乙個單一的類,該類負責建立自己的物件,並確保只建立乙個物件。單例只有乙個例項 單例類必須建立自己唯一的例項 單例類必須給其他物件提供這唯一的例項 由於當今的程式設計模型都是基於多執行緒方式,因此此處只介紹執行緒安全的幾種實現。第一次被呼叫時才建立物件,屬於懶載入 lazy init ...

設計模式(一) 單例模式

單例模式 保證執行記憶體中只有乙個實體的實現模式就是單例模式,最常見的有餓漢模式 懶漢模式兩種。餓漢模式 package com.madg.design.singleton public class hungry public hungry getinstance 懶漢模式 package com....