IOS設計模式學習(13)組合

2021-12-29 20:14:43 字數 493 閱讀 2896

1 前言

可以把組合想象成為乙個實體,它包含著同一型別的其它實體。這個結構就像由父節點實體和子節點實體連線而成的樹。它像同乙個祖先的族譜數一樣。族譜數中每個節點都有相同的姓。組合結構可以非常複雜,而且其內部表示不應暴露給客戶端。

2 詳述

2.1 簡述

組合模式讓我們可以把相同基型別的物件組合到樹狀結構中,其中的父節點包含同型別的子節點。換句話說,這種樹狀結構形成「部分-整體」的層次結構。它是既包含物件的組合(容器)又包含作為葉節點(基元)的單個物件的一種層次結構。每個組合體包含的其他節點,可以是葉節點或是其他組合體。這種關係在這個層次結構中遞迴重複。

將物件組合成樹形結構以表示「部分-整體」的層次結構。組合使得使用者對單個物件和組合物件的使用具有一致性。

2.2 何時使用

(1)想獲得物件抽象的樹形表示(部分-整體層次結構);

(2)想讓客戶端統一處理組合結構中得所有物件。

3 結語

以上是所有內容,希望對大家有所幫助。

設計模式 15 組合設計模式

目錄 什麼是組合模式 為什麼要用組合模式 組合模式組成 由每乙個單元節點,組合成乙個整體節點,這種對單個節點的結構儲存和對整體節點的儲存和處理邏輯保持一致的設計模式便是組合設計模式。應用中有很多場景會用到組合模式,例如樹狀儲存的結構,比如多級選單,每一層級選單的處理都可以抽象保持一致。比如企業的組織...

學習筆記 設計模式 9 組合模式

在上乙個設計模式中,我們講到了組合模式的例子。在那個例子中,我們利用迭代器將餐廳的選單 類a 類b 進行了改造,使其可以通用地進行列舉操作,現在我們的餐廳又遇到了乙個新的問題,在原來的選單中,老闆要求加上新的選單,而新的選單不是與原來的選單是並列的關係,而是包含的關係!新增的選單是原來選單的子項。可...

Java設計模式學習08 組合模式

把部分和整體的關係用樹形結構來表示,從而使客戶端可以使用統一的方式對部分物件和整體物件進行管理。下面通過簡單的防毒例子,使用組合模式 示例 1.抽象構件 public inte ce abstractfile 2.葉子構件 class imagefile implements abstractfil...