作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。
單例模式有以下特點:
單例類只能有乙個例項。
單例類必須自己建立自己的唯一例項。
單例類必須給所有其他物件提供這一例項。
乙個典型的單例類的實現如下所示:其中構造子私有表示子類不能被繼承。
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 描述 單例與多例模式 作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。單例模式有以下特點 單例類只能有乙個例項。單例類必須自己建立自己的唯一例項。單例類必須給所有其他物件提供這一例項。乙個典型的單例類的實現如下所示 其中構造...