設計模式C++之四(Multition多例模式)

 

多例模式,這個在GOF的模式設計裏沒有提到,但在實際工作中確實會用到。更詳細的內容及說明可以參考原作者博客:cbf4life.cnblogs.com。

4.1.解釋

main(),客戶

說明:和單例基本一樣,是有個數限制的單例。如果對於產生的實例個數沒有限制,那就不是多例了,和普通的類沒有區別。

舉例:曾經開發過一個從服務端以UDP協議,發送文件到客戶端的程序。客戶端連接服務端時採用TCP協議,服務端接受連接,產生一個向客戶端傳輸文件的實例FileService。每個客戶端的連接都會產生一個實例,但同一客戶端的多個連接請求會共享一個FileService實例。理論上講FileService實例的個數,取決於連接到服務的客戶端個數。由於是企業內部系統,所以這裏的個數是有限的,並不在廣域網上無限用戶的連接。我想這就是多例模式了,特殊的單例。可以將實例保存在std::map裏面,用客戶端IP和Port組織起來的字符串做爲鍵值。

類圖略過。

發佈了8 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章