iT邦幫忙

0

教授考我【GOF Patten邏輯大考驗】

  • 分享至 

  • xImage

1.Strategy(策略模式) vs Bridge(橋接模式)

老師: 你說2者都是把抽象類別跟實作類split而達到decouple,那請告訴我
Strategy的抽象在哪裡?

我(當下): 照架構來看的話,Strategy抽象是在context那欄,他可以有很多子類,恩.......我需要好好想想怎麼解釋

我與小夥伴的對話完的想法: Bridge的抽象是要為了給下面的子類當介面,這樣我們在不同介面下也可以使用我想要用的實作,Strategy底下的子類也可以利用不同Strategy來組合不同的實作,但往往Strategy是解決同個問題不同方式,而Bridge的抽象是結合2種不同實作不同方式

2.Bridge(橋接模式)內會不會有多個Abstraction但只有一個Imptementor質做

我(當下): 這樣的話Bridge就沒有存在的必要,根據GOF內部寫這種事Bridge的退化版,因為所有的Abstraction只會去執行一種Imptementor,但如果是不希望波及既有程式碼的話,Bridge仍有幫助。

我(事後):其實Bridge還是會在的,只是Imptementor的介面沒有存在的必要,我們可以直接連接到Imptementor實作本身,不過由於我們的情景是一對多,我們仍會需要這個Imptementor的介面來為後期進行擴充,而不適再Imptementor實作本身塞入一推實作

總結:
Strategy 的抽象在於定義統一的算法接口(Strategy 接口),Context 通過這個接口與具體策略進行交互,實現算法的可替換性。

Bridge 模式內如果只有一個 Implementor,從理論上來說這是退化的設計,但實際上仍可能因為未來擴展性或架構一致性而保留 Bridge 的結構。

李大瑋 iT邦好手 1 級 ‧ 2025-06-27 15:49:12 檢舉
不懂你發這文章到底想幹嘛
chase5ws iT邦新手 5 級 ‧ 2025-06-27 16:15:25 檢舉
你都可以發看車感想感想了........教授考我的題目發給大家看又不會怎樣
zivzhong iT邦研究生 2 級 ‧ 2025-06-30 11:16:23 檢舉
原 po 你這篇發技術問答有點怪吧,感覺你不是要人回答你的問題。自問自答可能左轉技術文章比較適合
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答