C 之單例與多例模式

2022-03-24 08:52:36 字數 950 閱讀 2888

作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。

單例模式有以下特點:

單例類只能有乙個例項。

單例類必須自己建立自己的唯一例項。

單例類必須給所有其他物件提供這一例項。

乙個典型的單例類的實現如下所示:其中構造子私有表示子類不能被繼承。

public

class

singleton 

public

static

singleton getinstance() 

return

m_instance; 

} } 

所謂多例模式,實際上就是單例模式的自然推廣,單例類一般情況下只可以有乙個例項,但單例類也可以推廣到允許有限個例項,這種模式就是多例模式。作為物件的建立模式,多例模式有以下特點:

多例類可以有多個例項。

多例類必須自己建立、管理自己的例項,並向外界提供自己的例項。

多例類分為有上限多例類與無上限多例類。

乙個有上限的多例類已經把例項的上限當作邏輯的一部分,並建造到了多例類的內部。如下:

public

class

multiton 

public

static

multiton getinstance(

intwhichone) 

return

instance1; 

} else

return

instance2; 

} } 

} 多例類的例項數目不需要有上限,例項數目沒有上限的多例模式就叫做無上限多例模式。由於沒有上限的多例類對例項的數目是沒有限制的,因此,雖然這種多例模式是單例模式的推廣,但是這種多例類並不一定能夠回到單例類。一般採用聚集管理所有的例項。 

**:其他關於單例模式的更詳細參考:

單例模式與多例模式

共同點 建構函式私有化 有什麼用?單例設計模式的特點 多例設計模式 多例設計模式和單例一樣都需要建構函式私有化,多例是根據不同的需求返回多個單例中的指定值。a code block public class message 餓漢式 class singletonhungry 構造方法私有化 publ...

設計模式C 描述 單例與多例模式

設計模式c 描述 單例與多例模式 作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。單例模式有以下特點 單例類只能有乙個例項。單例類必須自己建立自己的唯一例項。單例類必須給所有其他物件提供這一例項。乙個典型的單例類的實現如下所示 其中構造...

設計模式C 描述 單例與多例模式

設計模式c 描述 單例與多例模式 作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。單例模式有以下特點 單例類只能有乙個例項。單例類必須自己建立自己的唯一例項。單例類必須給所有其他物件提供這一例項。乙個典型的單例類的實現如下所示 其中構造...