設計模式二三事 組合模式

2021-07-11 12:18:10 字數 616 閱讀 5000

三、組合模式

組合模式允許派生類包含基類例項,以此來構成相互巢狀的組合方式,可構成類似樹形結構或者線性表,具體**如下:

//the base composite

class company

virtual void add( company* pcom ){}

virtual void show( int depth ){}

protected:

char* m_p;

};class financedepartment : public company

virtual void show( int depth )

cout<::size_type i = 0; i < m_list.size(); ++i )

}private:

vector< company* > m_list; //the container of the composite

};

上述**中,公司類是乙個基本抽象類,而金融部門和hr部門是派生類,具體的公司可以包含金融部門和hr部門,而hr部門裡面有可以包含各自的金融部門或者金融部門可以包含各自的hr部門,實現了組合的效果。

設計模式二三事 單例模式

一 單例模式 單例模式模式能夠保證乙個類的物件例項只有乙個,具體的做法是將類的建構函式設定為私有或者受保護,然後再提供乙個靜態介面,通過該介面可以建立或者獲取該類的唯一例項物件,具體的 如下表示 class singleton public static singleton getinstance ...

設計模式之工廠模式二三事

很久沒有寫過c 的專案了,最近看了看設計模式,對於工廠模式略有心得,故寫出來分享。工廠模式大致分為三類 簡單工廠模式 工廠方法模式 抽象工廠模式 ok,上圖說明,還是用網上流行的做菜比喻。無工廠情況 我想吃紅燒魚,沒問題,我自己做 new fish f new braisingfish 自己做紅燒魚...

組合模式 設計模式 組合模式

1.需求分析 假設要給乙個大公司做辦公管理系統,公司有人力資源部 財務部等,然後公司在其他城市還有分公司,分公司也有自己的人力資源部 財務部等,要求總公司 分公司以及各部分成樹狀結構管理。要完成這麼乙個系統,為了有乙個更好的設計,方便開發的展開,就需要了解乙個設計模式 組合模式。2.定義 將物件組合...