設計模式之一 單例模式

2022-08-04 22:57:19 字數 2276 閱讀 7763

單例模式的定義:

確保某乙個類只有乙個例項,而且自行例項化像整個系統提供這個例項。

單例模式通用類如下:

通用**如下:

public

class

singleon

//取得例項物件

public

static

singleon getsingleon()

//其他方法,盡量使static

public

static

void

dosomething()

}

單例模式優點:1.記憶體中只有乙個例項,減少記憶體開支。

2.避免對資源的多重占用,例如乙個檔案的書寫動作

3.單例模式可以在系統設定全域性的訪問點,優化和共享資源訪問。

單列模式使用的場景:

1. 要求生成唯一序列號的環境;

2. 在整個專案中需要乙個共享訪問點或共享資料。

3. 建立乙個物件需要消耗的資源過多,如果要訪問io和資料庫等資源;

4. 需要定義大量靜態常量和靜態方法(如工具類)的環境,可以採用單例模式

單例模式的注意事項

1.執行緒不安全

public

class

singleon

//取得例項物件

public

static

singleon getsingleon()

return

singleon;

}//其他方法,盡量使static

public

static

void

dosomething()

}

2.執行緒安全

public

class

singleon

//取得例項物件

public

static

synchronized

singleon getsingleon()

return

singleon;

}//其他方法,盡量使static

public

static

void

dosomething()

}

單例模式的擴充套件

public

class

singleonex

}/***

* title:

* description: 無參構造

*/private

singleonex()

/***

* title:

* description: 有參構造

* @param

name

*/private

singleonex(string name)

/***

* @title: getinstance

* @description: 獲取例項物件

* @param

@return

設定檔案

* @return

singleonex 返回型別

* @throws

*/public

static

singleonex getinstance()

/***

* @title: say

* @description: 測試使用列印點東西...

* @param

設定檔案

* @return

void 返回型別

* @throws

*/public

static

void

say()

/***

* @title: main

* @description: 入口測試用

* @param

@param

args 設定檔案

* @return

void 返回型別

* @throws

*/public

static

void

main(string args)}}

設計模式之一單例模式

單例模式就是類別只有乙個例項,每次在必得類呼叫這個類的例項,都是同乙個例項。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。如印表機 顯示卡等等這些系統資源。如果做andr...

設計模式之一 單例模式

單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。即乙個類只有乙個物件例項。定義乙個單例類,使用類的私有指標變數指向類的唯一例項,並且使用乙個共有的靜態方法獲取該例項。懶漢模式 即第一次呼叫該類的例項的時候才產生乙個新的該...

設計模式之一 單例模式

一.什麼是單例模式 某個類同時保留乙個物件,不希望有更多物件,此時,我們則應考慮單例模式的設計。二.單例模式的特點 1.單例模式只能有乙個例項。2.單例類必須建立自己的唯一例項。3.單例類必須向其他物件提供這一例項。三.單例模式vs靜態類 在知道了什麼是單例模式後,我想你一定會想到靜態類,既然只使用...