java設計模式與策略模式

2021-07-23 17:25:37 字數 494 閱讀 2766

策略模式用於封裝系列的演算法,這些演算法通常被封裝在乙個被稱為 context 類中,客戶端程式可以自由選擇其中一種演算法,或讓 context 為客戶端選擇乙個最佳的演算法——使用策略模式的優勢是為了支援演算法的自由切換。

(1)策略模式提供了管理相關的演算法族的辦法。策略類的等級結構定義了乙個演算法或行為族。恰當使用繼承可以把公共的**移到父類裡面,從而避免**重複。

(2)使用策略模式可以避免使用多重條件(if-else)語句。多重條件語句不易維護,它把採取哪一種演算法或採取哪一種行為的邏輯與演算法或行為的邏輯混合在一起,統統列在乙個多重條件語句裡面,比使用繼承的辦法還要原始和落後。

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

(2)由於策略模式把每個具體的策略實現都單獨封裝成為類,如果備選的策略很多的話,那麼物件的數目就會很可觀。

案例:spring  reouce

Java與設計模式 策略模式

在實際開發中,可能會遇到這樣乙個情況,某一功能的實現分為多種演算法,這些演算法能夠認定為策略,在實際操作時選擇不同演算法或策略進行操作得出終於結果。在實際生活中。這些樣例也是舉不勝舉。比如。商場舉行活動,滿100元減10元,滿200元減30元,滿500元減100元等等.這樣每消費一筆,依據這一筆錢消...

java 設計模式 策略模式

就是比較兩個類別時,要自己寫乙個比較器,這個比較器實現了 comparator介面,裡面實現public int compare object o1,object o2 方法。在實體類裡面要有乙個成員變數時這個比較器,這個實體類也要實現了 comparable介面。例如 cat有兩個屬性,heigh...

java設計模式 策略模式

策略模式 strategy pattern 體現了兩個非常基本的物件導向設計的原則 1 封裝變化的概念 2 程式設計中使用介面,而不是對介面的實現。策略模式定義了乙個共同的抽象演算法介面,其子類實現這個介面定義的方法,並且都有各自不同的實現,這些演算法實現可以在客戶端呼叫它們的時候互不影響的變化。子...