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

設計模式入門:橋接模式 Bridge Pattern

    想像一下你家裡的電視遙控器。這個遙控器能夠控制不同品牌的電視,無論是開機、關機還是調整音量,它都能輕鬆搞定。遙控器就像是橋接不同電視的中介,讓你只需要按下按鈕,就能控制電視,而不用擔心每台電視的內部細節。這就是橋接模式的精髓:把「操作」和「具體實現」分開,讓它們可以獨立發展。


    什麼是橋接模式?

    橋接模式是一種結構型設計模式,它的目的是將抽象部分(比如遙控器的功能)與具體實現部分(比如電視的品牌和型號)分離,讓它們可以獨立變化。簡單來說這個模式讓你把「抽象層次」和「具體實作」分開,以便它們可以各自演化而不互相依賴。這樣當需要擴充系統時,不管是改變抽象部分還是實作部分,都能輕鬆搞定。


    橋接模式遊戲開發中的例子

    在遊戲開發中橋接模式特別有用。假設我們在開發一個角色扮演遊戲,遊戲中有不同的角色(如戰士、法師)和武器(如劍、法杖)。如果我們希望自由地組合角色和武器,而不是為每種組合都建立一個新的類別,橋接模式就能幫助我們做到這點。這樣我們可以隨意組合角色和武器,而不需要重新建立所有的類別,例如 WarriorWithSword, MageWithStaff 等,這會導致類別數量的急劇增加。


    橋接模式的優缺點

    橋接模式的優點在於它讓抽象與實作分開,這樣你可以靈活地新增或修改兩者中的任何一方,系統的擴展性大大提高。尤其在處理複雜的物件結構或多樣化需求時,它能有效減少程式碼重複,讓系統更易於維護。


    橋接模式並不是在所有情況下都適用。對於系統結構簡單、需求固定的情況,這種設計可能會增加不必要的複雜度。另外加入額外的抽象層可能會稍微增加開發難度。


    總結一下,橋接模式適合那些需要同時處理多個維度變化的系統。它使得抽象和實作分離,讓系統可以更靈活地演進。在現實中,當面對多重需求的擴展時,橋接模式能讓你輕鬆應對各種變化,避免系統變得難以維護或過於複雜。


    想要親身體驗設計模式奧義的人,推薦參考我今年在iThome鐵人賽的文章。
    https://ithelp.ithome.com.tw/articles/10349807

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