行為型 策略模式

2021-10-10 08:19:46 字數 560 閱讀 3241

注入物件,改變行為。

這是乙個很有意思的模式,它可以有多種表現形式,只要滿足注入物件,改變行為

學習這個模式,必須忘記網上和書上的標準類圖。

注入不同的comparator,排序的方式也不同。

這是最常見的策略模式的表現形式,沒必要畫什麼圖。

與上乙個策略模式比較,有點主客顛倒的意思。

(class<

?> beanclass, string beanname)}}

return null;

}如果要實現新的策略,只需寫個bean,或者動態的決定要不要載入自己寫的bean。

通過在 spring 能掃瞄到的類上加上 @enable *** 註解,就會自動匯入相應的功能。

大多數書籍和網上的帖子,只有第一種形式的標準類圖。對於策略模式,只需要記住一句話:注入物件,改變行為。重點不在注入物件,重點在改變行為,注入物件只不過是改變行為的一種手段,是可以泛化的,可以做擴充套件解釋的,比如之後的案例,雖然也是注入物件了,但並不像第一案例那樣直截了當。

策略模式(行為型)

思考問題 乙個書店的某類書是免費的,某類書是固定1元的,某類書是按折扣算的 比如88 同一類別的書本 一樣 假定顧客只買一類書,在設計書店bookstore類時應該如何計算顧客買書的費用?解答 1.你有可能不知道如何設計,畢竟上面的計算規則不一樣 並不是一類書8折另一類書9折那樣好計算 2.既然這樣...

行為型(一) 策略模式

1 定義 define a family of algorithms,encapsulate each one,and make them interchangeable.定義一組演算法,將每個演算法都封裝起來,並且使它們之間可以互換。2 使用場景 多個類只是在演算法或行為上稍有不同 演算法需要自由...

設計模式 行為型 策略模式

更好的實現開閉原則 ocp,openclosedprinciple 即對於擴充套件是開放的,對於修改是關閉的,不修改原有 只擴充套件 策略模式包括三個角色 context 環境類 使用演算法策略,維持乙個抽象策略類的引用例項 strategy 抽象策略類 將所有的策略抽象出來,在該類宣告抽象方法或者...