組合模式:允許你將對象組合成樹形結構來變現“整體/部分”層次結構。組合能讓客戶以一致的方式處理個別對象及對象組合。
這個模式常用語UI組件的組織結構上,也很好理解。
在cocos2d中也不例外的應用了組合模式:
class CC_DLL CCNode : public CCObject{
CCArray *m_pChildren; ///< array of children nodes
virtual void addChild(CCNode * child);
}
CCArray是一個可變數組,所有繼承自CCNode的子類都可以通過addChild方法添加自己的子類,最後就成了一個樹形結構,而且沒有嚴格意義上的葉節點。