Hi!大家好,我是神 Q 超人!最近生活實在是太忙了,因此都沒有時間好好學習被排在待學清單裡的那些酷東西,但如果再繼續耍廢下去,又會感到魔名的恐慌 😂,所以就決定來寫篇文章來強迫自己學習,繼續之前沒有讀完的設計模式!而在這篇文章中登板的是設計模式中的 Composite Pattern(組合模式)! 目的 當你的需求要求你將資料組成一個類似 tree 的結構時,即使你或是 tree 中的任一個節點都不理解自己以下的結構到底長什麼樣子,也還是能直接透過 tree 的 root 來操作或取得整體的行為或資料。 舉例來說,如果今天需要實作計算包裝及商品價格的程式,那可能會需要用來包裝的盒子和商品的 class,然後包裝和計算的過程大概像這樣子: 目前透過一個簡單的 Array.prototype.reduce() 就能取得盒子的包材費用,以及裡面的商品總價,這樣看起來一切都非常好。但通常在你認為一切都很好的時候,就會有需求產生了。