1 單例模式

2022-09-04 05:18:09 字數 1065 閱讀 7976

1. 乙個class只有乙個物件,減少了記憶體開支

2. 避免對資源多重占用

1. 頻繁建立及銷毀的物件,例如工具類

2. 不變的物件

3. 重量級物件,例如jdbc連線,httpclient等

/**

* 惡漢式

* 優點:類載入時就完成了例項化,避免了執行緒同步問題。

* 缺點:static一直強引用這物件,直至類被銷毀物件才會被銷毀。可能造成記憶體浪費

*/public

class

singleton

public

static

singleton getinstance()

}

/**

* 懶漢式(雙重檢查)

* 優點:執行緒安全,延遲載入,效率較高

*/public

class

singleton

public

static

singleton getinstance() }}

return

singleton;

}}

/**

* 靜態內部類

* 原理:採用類載入的機制保證例項化的執行緒安全。當需要物件時,呼叫 getinstance 方法時才會載入 singletoninstnce 類,完成例項化。

* 優點:執行緒安全,延遲載入

*/public

class

singleton

private

static

class

singletoninstance

public

static

singleton getinstance()

}

/**

* 列舉

* 原理:借用列舉來實現單例,不僅能避免執行緒問題,還能防止反序列化重新建立新的物件。

*/public

enum

singleton

}

1 單例模式

乙個類只能有乙個例項。比如印表機這種東西。trick在於 變數,構造方法都必須為private,所以其他類new它的構造方法是不行的,直接呼叫變數也不行。只能呼叫getinstance 方法 其他被public修飾的方法。getinstance 方法記得用public修飾。原理 public cla...

1 單例模式

某個物件只需要乙個例項的情況,比方說gamemanager,resourcemanagerusing system namespace 單例模式 定義公有方法提供乙個全域性訪問點,同時你也可以定義公有屬性來提供全域性訪問點 public static singleton getinstance 構造...

單例模式1

1 餓漢式 author version 0.1 單例模式 餓漢式 建立時進行例項化 1 私有化構造方法 2 建立私有例項 static 3 建立公共類方法 static 方法輸出單例 public class singleton5 公共方法 public static singleton5 get...