多例模式,這個在gof的模式設計裡沒有提到,但在實際工作中確實會用到。更詳細的內容及說明可以參考原作者部落格:cbf4life.cnblogs.com。
4.1.解釋
main(),客戶
略說明:和單例基本一樣,是有個數限制的單例。如果對於產生的例項個數沒有限制,那就不是多例了,和普通的類沒有區別。
舉例:曾經開發過乙個從服務端以udp協議,傳送檔案到客戶端的程式。客戶端連線服務端時採用tcp協議,服務端接受連線,產生乙個向客戶端傳輸檔案的例項fileservice。每個客戶端的連線都會產生乙個例項,但同一客戶端的多個連線請求會共享乙個fileservice例項。理論上講fileservice例項的個數,取決於連線到服務的客戶端個數。由於是企業內部系統,所以這裡的個數是有限的,並不在廣域網上無限使用者的連線。我想這就是多例模式了,特殊的單例。可以將例項儲存在std::map裡面,用客戶端ip和port組織起來的字串做為鍵值。
類圖略過。
設計模式之策略模式(四)
策略模式定義 在軟體開發中也常常遇到類似的情況,實現某乙個功能有多種演算法或者策略,我們可以根據環境或者條件的不同選擇不同的演算法或者策略來完成該功能。策略模式 定義一系列的演算法,把每乙個演算法封裝起來,並且使它們可相互替換 策略模式的組成 1 抽象策略角色 strategy 策略類,通常由乙個介...
C 設計模式之我見 四
今天咱們接著上一節的行為型模式觀察者模式 oberver pattern 中介者模式 mediator pattern 備忘錄模式 memento pattern 給大家繼續講。在前這幾節中,因為時間緊促,可能有些詮釋的不到位,可能多少有點瑕疵,因為不同人的理解是不同的概念。當然希望廣大讀者多提建議...
C 設計模式之我見 四
模版方法模式 template method 命令模式 command pattern 迭代器模式 iterator pattern 觀察者模式 oberver pattern 中介者模式 mediator pattern 備忘錄模式 memento pattern 直譯器模式 interprete...