當前位置:編程學習大全網 - 源碼破解 - 策略模式的優缺點

策略模式的優缺點

優點:

1、 策略模式提供了管理相關的算法族的辦法。策略類的等級結構定義了壹個算法或行為族。恰當使用繼承可以把公***的代碼轉移到父類裏面,從而避免重復的代碼。

2、 策略模式提供了可以替換繼承關系的辦法。繼承可以處理多種算法或行為。如果不是用策略模式,那麽使用算法或行為的環境類就可能會有壹些子類,每壹個子類提供壹個不同的算法或行為。但是,這樣壹來算法或行為的使用者就和算法或行為本身混在壹起。決定使用哪壹種算法或采取哪壹種行為的邏輯就和算法或行為的邏輯混合在壹起,從而不可能再獨立演化。繼承使得動態改變算法或行為變得不可能。

3、 使用策略模式可以避免使用多重條件轉移語句。多重轉移語句不易維護,它把采取哪壹種算法或采取哪壹種行為的邏輯與算法或行為的邏輯混合在壹起,統統列在壹個多重轉移語句裏面,比使用繼承的辦法還要原始和落後。

缺點:

1、客戶端必須知道所有的策略類,並自行決定使用哪壹個策略類。這就意味著客戶端必須理解這些算法的區別,以便適時選擇恰當的算法類。換言之,策略模式只適用於客戶端知道所有的算法或行為的情況。

2、 策略模式造成很多的策略類,每個具體策略類都會產生壹個新類。有時候可以通過把依賴於環境的狀態保存到客戶端裏面,而將策略類設計成可***享的,這樣策略類實例可以被不同客戶端使用。換言之,可以使用享元模式來減少對象的數量。

  • 上一篇:十大猛虎團的內容簡介
  • 下一篇:印刷和噴繪的區別
  • copyright 2024編程學習大全網