策略模式(Strategy)簡介

2022-04-19 19:26:14 字數 1324 閱讀 9948

策略模式是行為模式.

行為模式:規定了各個物件應該具備的職責以及物件間的通訊模式,它很好的規範了物件間呼叫和資料傳遞方式

策略模式適合於演算法經常變化的情況

演算法的變化不會影響到使用演算法的客戶,演算法可以獨立於使用它的客戶所變化

普通客戶,會員,vip會員購買商品**不一樣

抽象類

package

strategy;

/** 計算商品**的抽象類 */

public

abstract

class

account

普通

package

strategy;

/*** 普通客戶商品**計算 */

public

class commonaccount extends

account

}

會員

package

strategy;

/*** 普通會員商品**計算打9折 */

public

class insideraccount extends

account

}

vip

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...