object pool 模式
關鍵特徵:
意圖:在建立物件比較昂貴,或者對於特定型別能夠建立的物件數目有限制時,管理物件的重用。
解決方案:在需要乙個 reusable 物件時,client 呼叫 reusablepool 的 acquirereusable 方法。如果池是空的,那麼 acquirereusable 方法建立乙個 reusable 物件(如果能夠),否則,就等待直到有 reusable 物件返回集合。
效果:最適用於對物件的需求一直非常穩定的時候,需求變化太大會帶來效能問題。object pool 中未來解決這一問題,限制了能夠建立的物件數量。使管理例項建立的邏輯與例項被管理的類分離,可以得到內聚更好的設計。
實現:如果可以建立的數量有限制,或者池的大小有限制,可以使用乙個簡單的陣列來實現池。否則,使用vector 物件。負責管理物件池的物件必須是唯一能夠建立這些物件的物件。reusablepool 是用 singleton 模式實現的。另一種變體是在 reusable 物件中加乙個釋放方法——讓它自己返回到池。
《設計模式解析》摘錄(4)
物件 傳統看法 具有方法的資料 從實現的視角來看待物件,太簡單,太膚淺了 新看法 具有責任的實體。這些責任定義了物件的行為 從概念視角出發 關注動機而非實現,使設計模式中反覆出現的主題,因為將實現隱藏在介面之後,實際上是將物件的實現與使用它們的物件解耦了。封裝封裝不僅僅是資料隱藏 封裝應該被視為 任...
《設計模式解析》摘錄(5)
短期的抄近路,可能會在長期導致問題嚴重複雜化。災難往往是由短期未臻最優的決策,長期積累而引起的。許多專案只關心處理眼前的緊迫需求,卻不顧將來的維護。1 針對介面進行程式設計,而不要針對實現程式設計 2 優先使用物件組合,而不是類繼承 3 考慮設計中什麼應該是可以變化的。這種方法與關注引起重新設計的原...
《設計模式精解》書評摘錄
我買這本書英文本版。這本書比 設計模式 一書容易理解.本書開頭有些章節很精采.bridge 模式講很好。正在看,感覺對設計模式的講解深入淺出,非常適合我等初窺設計模式門徑的人。我花了一周的空餘時間,讀完了此書 如果讓我讀英文原版,恐怕要2周,而且收穫恐怕也不會像現在一樣深刻 感覺書非常適合剛剛學習 ...