策略模式 模擬Struts選擇策略決策轉移

2021-09-01 17:31:13 字數 1236 閱讀 9854

目標:我們需要乙個計算**的類,有時候會打折

1.我們先設計乙個介面

public inte***ce pricecalculationstrategy
2.我們有一些計算實現

public class defaultdiscountpricecalstrategy implements pricecalculationstrategy

@override

public boolean match(double price, double copies)

}

public class nodiscountpricecalstrategy implements pricecalculationstrategy

public boolean match(double price, double copies)

}

public class discountpricecalstrategy implements pricecalculationstrategy

public void setdiscount(double rate)

public boolean match(double price, double copies) else if( price >=1000)

return match;

}}

3.計算工具類,發現我們根本不要自己判斷,每個策略自己判斷執不執行

public class pricecalculationutil 

public static double pricecalculation(double price , double copies)

} //優先其他策略,我不會告訴你我打的廣告「 1折 商品 」 是假的,你看我有這個策略的

defaultdiscountpricecalstrategy defaultd = new defaultdiscountpricecalstrategy();

return defaultd.calculateprice(price, copies);

}

}

4.測試

public class pricecalculationutiltest 	

}

策略模式 模擬Struts選擇策略決策轉移

目標 我們需要乙個計算 的類,有時候會打折 1.我們先設計乙個介面 public inte ce pricecalculationstrategy2.我們有一些計算實現 public class defaultdiscountpricecalstrategy implements pricecalc...

JavaScript 模擬策略模式

模擬乙個介面,其方法會丟擲異常 function flyinter flyinter.prototype.fly function 實現乙個fly noway的方法 function flynoways flynoways.prototype.fly function 實現乙個fly with wi...

設計模式 策略模式 多演算法選擇的福音

策略模式 strategy pattern 是指定義了演算法家族 分別封裝後,讓他們相互之間可以互相替換,次模式讓演算法的變化不會影響到使用演算法的使用者。大家在網購中經常會碰到優惠活動,有使用優惠券或滿199 100返現活動等,而這些不一樣的優惠方式就可以用上策略模式。首先,我們定義乙個 優惠的抽...