定義了演算法家族,分別封裝起來,讓它們之間可以互相替代,此模式讓演算法的辯護權啊不會影響到使用演算法的使用者。
適用場景:
在**期間商家有不同的**策略:返現、立減和滿減。
策略抽象類:
public
inte***ce
promotionstrategy
返現策略:
public
class
fanxianpromotionstrategy
implements
promotionstrategy
}
立減策略:
public
class
lijianpromotionstrategy
implements
promotionstrategy
}
滿減策略:
public
class
manjianpromotionstratehy
implements
promotionstrategy
}
**活動,將**策略作為成員變數:
public
class
promotionactivity
public
void
executepromotionstrategy()
}
客戶端類:
public
class
test
}
每當要新增乙個**策略的時候,直接增加乙個策略實現即可,十分方便。 策略模式(行為型)
思考問題 乙個書店的某類書是免費的,某類書是固定1元的,某類書是按折扣算的 比如88 同一類別的書本 一樣 假定顧客只買一類書,在設計書店bookstore類時應該如何計算顧客買書的費用?解答 1.你有可能不知道如何設計,畢竟上面的計算規則不一樣 並不是一類書8折另一類書9折那樣好計算 2.既然這樣...
行為型 策略模式
注入物件,改變行為。這是乙個很有意思的模式,它可以有多種表現形式,只要滿足注入物件,改變行為。學習這個模式,必須忘記網上和書上的標準類圖。注入不同的comparator,排序的方式也不同。這是最常見的策略模式的表現形式,沒必要畫什麼圖。與上乙個策略模式比較,有點主客顛倒的意思。class beanc...
行為型(一) 策略模式
1 定義 define a family of algorithms,encapsulate each one,and make them interchangeable.定義一組演算法,將每個演算法都封裝起來,並且使它們之間可以互換。2 使用場景 多個類只是在演算法或行為上稍有不同 演算法需要自由...