設計模式(十一)Object Pool模式

2021-09-11 16:28:11 字數 836 閱讀 5198

使用singleton模式構建物件池管理manager,初始化n個物件,當需要使用時遍歷n個物件,得到空閒物件,不使用時釋放該物件。

object pool模式

關鍵特徵

意圖在建立物件比較昂貴,或者對於特定型別能夠建立的物件數目有限時,管理物件的重用。

問題物件的建立和管理必須遵循一組定義明確的規則集。通常這些規則都與如何建立物件、能夠建立多少個物件和已有物件完成當前任務時如何重用它們等等有關 。

解決方案

在需要乙個reusable物件時,client呼叫reusablepool的acquirereusable方法。如果池是空的,那麼acquirereusable方法建立乙個reusable物件,否則,就等待直到有reusable物件返回集合

參與者與協作者

reusablepool管理著client所有的reusable物件的可用性。client然後在乙個有限的時間段內使用reusable物件的例項,reusablepool包含所有reusable物件,這樣就可以對其以統一的方式進行管理。

效果最適用於物件需求一直非常穩定的時候,需求變化太大會帶來效能問題。object pool中為了解決這一問題,限制了能夠建立的物件的數量。使管理示例建立的邏輯和例項被管理的類分離,可以得到內聚更好的設計。

實現如果可以建立的物件數量有限制,或者池的大小有限制,可以使用乙個簡單的陣列來實現池。否則使用vector物件,負責管理物件池的物件必須是能夠唯一建立這些物件的物件。reusablepool是用singleton模式實現的。另一種變體是在reusable物件中加乙個釋放方法——讓它自己回到池中

參看《設計模式解析》第二版

十一 Android設計模式

android專案開發中發現問題 解決問題這個過程中會出現很多問題,比如重複出現 某個問題的遺留,這些問題的本質就是android設計模式。下面羅列7種常用的android設計模式。單例模式 目的是為了讓系統中只有乙個呼叫物件,缺點是單例使其他程式過分依賴它,而且不同單例執行在不同程序中,使得維護困...

Java(十一)設計模式

單例模式 通常作為程式中存放配置資訊的載體,因為它能保證其他物件讀到一致的資訊。特點 1.只能有乙個例項。2.必須自己建立自己的唯一例項。3.必須給所有其他物件提供這一例項。1.餓漢式 class singleton1 2,建立本類物件 private static singleton1 s new...

設計模式 十一 狀態模式

狀態模式 state 當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。狀態模式主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況,把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把複雜的判斷邏輯化。狀態抽象類,定義乙個介面以及封裝與context 的乙個特定...