一蒂窒、基礎(chǔ)概念
1、策略模式:它定義了算法家族秧秉,分別封裝起來衰抑,讓它們之間可以互相替換,此模式讓算法的變化呛踊,不會影響到使用算法的客戶啦撮。
2拇舀、適用場景:策略模式就是用來封裝算法的。多個類只區(qū)別在表現(xiàn)行為不同聘鳞,在運行時動態(tài)選擇具體要執(zhí)行的行為要拂。需要在不同情況下使用不同的策略,或者策略在未來還有其他方式實現(xiàn)脱惰。對客戶隱藏具體策略的實現(xiàn)細節(jié),彼此完全獨立采盒。
3蔚润、UML結(jié)構(gòu)
Context:環(huán)境上下文,用一個ConcreteStrategy來配置烦租,維護一個對Strategy對象的引用除盏,客戶端調(diào)用該類的方法
Strategy:抽象策略類,定義所有支持的算法的公共接口
ConcreteStrategy:具體策略類者蠕,封裝了具體的算法或行為,繼承于Strategy
4锌杀、代碼描述
抽象策略類:CashSuper.java
具體策略類:NormalCash.java
具體策略類:RebateCash.java
上下文類:CashContext.java