2024-09-05|閱讀時間 ‧ 約 23 分鐘

設計模式入門:組合模式 Composite Pattern

    今天來聊聊一個有趣的組合模式 Composite Pattern。想像你正在整理電腦裡的檔案。有時候你會打開單一的檔案,有時候則是整個資料夾。不論是單一檔案還是資料夾,你都希望能用相同的方式來處理它們,比如移動或刪除它們,這就是組合模式要解決的問題!


    什麼是組合模式?

    組合模式是一種結構型設計模式,讓你可以用同樣的方式處理單一物件和一群物件。它把物件組織成樹狀結構,你就不用再區分是在處理單一物件還是一群物件,兩者都可以統一對待。


    組合模式的例子

    想像你正在使用一個圖形編輯器:

    1. 你可以畫一個圓形或一個方形(單一物件)

    2. 你也可以畫一個由多個形狀組成的複雜圖案(一群物件)

    3. 不管是單一形狀還是複雜圖案,你都希望能用同樣的方式來移動、縮放或刪除它們

    這就是組合模式的魅力所在!它讓你用統一的方式來操作不同層級的物件。


    組合模式的優點

    組合模式的優點是簡化程式碼,不需要寫不同的程式來處理單一物件和一群物件。想要加入新類型的物件也容易擴展!只要遵循既定的介面就可以了。


    什麼時候使用組合模式?

    當你希望使用者忽略單個物件和組合物件的差異,並且能統一處理所有物件,或者需要表示物件的整體層次結構,那麼組合模式會是個好選擇。比如檔案管理系統、圖形編輯器或是UI系統。


    總結一下,組合模式的最大優勢在於它讓我們能夠用相同的方式來操作單一物件和多個物件,非常適合有層次結構的系統設計。下次在設計程式時,如果遇到類似需求,不妨試試看組合模式吧!


    想了解設計模式的實際效果,可以參考我今年在iThome鐵人賽的文章。
    https://ithelp.ithome.com.tw/articles/10348091

    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.