策略模式(Strategy Pattern)
策略模式应用场景:
策略模式一般用于封装系列的计算方法,这些算法通常封装在一个context的类中。
在程序里面我们可以自由地选择其中一种算法。最常见的应用场景比如商场商品的
促销折扣计算。
?
用switch我们也可以实现这些功能,只不过代码扩展性不好,如果我们需要加入一
个折扣的计算,那么我们改动的地方较多。
?
public class DiscountTest {public static void main(String[] args) {//不指定策略,则使用默认的策略模式DiscountContext context = new DiscountContext(null);double originalPrice1 = 80;context.getDiscountPrice(originalPrice1);//选择vip折扣context.changeDiscount(new VipDiscount());double originalPrice2 =101;context.getDiscountPrice(originalPrice2);}}
?
?