首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

折扣计算对策-设计模式应用

2012-10-25 
折扣计算策略--设计模式应用折扣计算,策略模式和装饰模式的具体应用。?package org.tang.zjnumall.strategy

折扣计算策略--设计模式应用

折扣计算,策略模式和装饰模式的具体应用。

?

package org.tang.zjnumall.strategy.discount;import java.math.BigDecimal;public class DiscountCalculator {/** * 折扣策略 */private AbstractDiscountStrategy strategy;public DiscountCalculator(){}/** *  * @param strategy 具体折扣策略 */public DiscountCalculator(AbstractDiscountStrategy strategy){this.strategy = strategy;}public AbstractDiscountStrategy getStrategy() {return strategy;}public void setStrategy(AbstractDiscountStrategy strategy) {this.strategy = strategy;}public BigDecimal calculate(){return null;}public static void main(String[] args){BigDecimal price = new BigDecimal("99.99");int copies = 9;BigDecimal percent = new BigDecimal("0.12");BigDecimal discount = new BigDecimal("10");BigDecimal limit = new BigDecimal("100");AbstractDiscountStrategy noDiscount = new NoDiscountStrategy();AbstractDiscountStrategy percentStrategy = new PercentageDiscountStrategy(price, copies, percent);AbstractDiscountStrategy flatRateStrategy = new FlatRateDiscountStrategy(copies, discount);AbstractDiscountStrategy restrictedStrategy = new RestrictedDiscountStrategy(percentStrategy, limit);System.out.println("折扣前总额:"+price.multiply(new BigDecimal(copies)));System.out.println("零折扣策略总折扣额:"+noDiscount.calculateDiscount());System.out.println("折扣率策略总折扣额:"+percentStrategy.calculateDiscount());System.out.println("固定折扣额策略总折扣额:"+flatRateStrategy.calculateDiscount());System.out.println("限制折扣额策略总折扣额:"+restrictedStrategy.calculateDiscount());}}
?

热点排行