組合模式聽說去很玄乎,其實也並不複雜。為什麼?大家可以先想一下資料結構裡面的二叉樹是怎麼回事。為什麼就是這麼乙個簡單的二叉樹節點既可能是葉節點,也可能是父節點?
[cpp]view plain
copy
typedef
struct
_node
node;
那什麼時候是葉子節點,其實就是left、right為null的時候。那麼如果它們不是null呢,那麼很明顯此時它們已經是父節點了。那麼,我們的這個組合模式是怎麼乙個情況呢?
[cpp]view plain
copy
typedef
struct
_object
object;
就是這麼乙個簡單的資料結構,是怎麼實現子節點和父節點的差別呢。比如說,現在我們需要對乙個父節點的operate進行操作,此時的operate函式應該怎麼操作呢?
[cpp]view plain
copy
void
operate_of_parent(
struct
_object* pobject)
}
當然,有了parent的operate,也有child的operate。至於是什麼操作,那就看自己是怎麼操作的了。
[cpp]view plain
copy
void
operate_of_child(
struct
_object* pobject)
父節點也好,子節點也罷,一切的一切都是最後的應用。其實,使用者的呼叫也非常簡單,就這麼乙個簡單的函式。
[cpp]view plain
copy
void
process(
struct
object* pobject)
C語言和設計模式(之組合模式)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!組合模式聽說去很玄乎,其實也並不複雜。為什麼?大家可以先想一下資料結構裡面的二叉樹是怎麼回事。為什麼就是這麼乙個簡單的二叉樹節點既可能是葉節點,也可能是父節點?typedef struct nodenode 那什麼時候是葉子節點,其實就是left ...
C語言和設計模式(組合模式)
又叫做 整體 部分模式 它使樹型結構的問題中,模糊了簡單元素和複雜元素的概念,客戶程式可以像處理簡單元素一樣來處理複雜元素,從而使得客戶程式與複雜元素的內部結構解耦 1 抽象元件類 component 組合中的物件宣告介面,實現所有類共有介面的行為。宣告用於訪問和管理component的子部件的介面...
5 C語言和設計模式(之組合模式)
組合模式聽說去很玄乎,其實也並不複雜。為什麼?大家可以先想一下資料結構裡面的二叉樹是怎麼回事。為什麼就是這麼乙個簡單的二叉樹節點既可能是葉節點,也可能是父節點?cpp view plain copy typedef struct node node 那什麼時候是葉子節點,其實就是left right...