22 C語言和設計模式(之組合模式)

2021-09-30 11:41:26 字數 1029 閱讀 3693

組合模式聽說去很玄乎,其實也並不複雜。為什麼?大家可以先想一下資料結構裡面的二叉樹是怎麼回事。為什麼就是這麼乙個簡單的二叉樹節點既可能是葉節點,也可能是父節點?

[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...