策略模式是行為模式.
行為模式:規定了各個物件應該具備的職責以及物件間的通訊模式,它很好的規範了物件間呼叫和資料傳遞方式
策略模式適合於演算法經常變化的情況
演算法的變化不會影響到使用演算法的客戶,演算法可以獨立於使用它的客戶所變化
普通客戶,會員,vip會員購買商品**不一樣
抽象類
package普通strategy;
/** 計算商品**的抽象類 */
public
abstract
class
account
package會員strategy;
/*** 普通客戶商品**計算 */
public
class commonaccount extends
account
}
packagevipstrategy;
/*** 普通會員商品**計算打9折 */
public
class insideraccount extends
account
}
package上下文類strategy;
/*** vip會員商品**計算打8折 */
public
class vipaccount extends
account
}
package測試類strategy;
/*** 此類用於維護策略類的引用 */
public
class
context
//呼叫計算方法
public
double doaccount(int amount, double
d)
}
package結果:strategy;
/*** 此策略模式測試類 */
public
class
test
}
普通客戶:沒有折扣,購買的商品名稱: *** 數量: 2 單價:50.0 應付金額:100.0普通會員:9折優惠,購買的商品名稱: *** 數量: 2 單價:50.0 應付金額:90.0vip客戶:8折優惠,購買的商品名稱: *** 數量: 2 單價:50.0 應付金額:80.0
策略模式 Strategy 簡介
還是用回那個計算器作例子.用簡單工廠模式實現的uml圖是這樣的 客戶端關鍵 private void btnclicked b el 可見,使用簡單工廠後,在客戶端只知道演算法是operation的子類實現的,但是不知道具體是哪個子類 operationadd 還是 operationdel 也就是...
策略 Strategy 模式
strategy 模式也叫策略模式,是由 gof提出的 23種軟體設計模式的一種。strategy 模式是行為模式之一,它對一系列的演算法加以封裝,為所有演算法定義乙個抽象的演算法介面,並通過繼承該抽象演算法介面對所有的演算法加以封裝和實現,具體的演算法選擇交由客戶端決定 策略 strategy 模...
策略模式 Strategy
public context string strategytype df對策略模式的定義是這樣的 它定義了演算法家族,分別封裝起來,讓它們之間可以相互替換,此模式讓演算法的變化不會影響到使用演算法的客戶 main函式 abstract class strategy class concretest...