1. 概念
策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。策略模式的好处在于你可以动态的改变对象的行为。
2. 应用场景
商品打折,一个电商平台根据会员的等级,购买的商品数量有不同的打折策略。
public interface Discount {
float discount(float price);
}
public class DiscountOp1 implements Discount{
@Override
public float discount(float price) {
return price * 0.9f;
}
}
public class DiscountOp2 implements Discount{
@Override
public float discount(float price) {
return price * 0.8f;
}
}
public class DiscountPross {
private Discount discount;
public float discount(float price){
return discount.discount(price);
}
public Discount getDiscount() {
return discount;
}
public void setDiscount(Discount discount) {
this.discount = discount;
}
}
public class Client {
public static void main(String[] args) {
Discount discount = new DiscountOp1();
DiscountPross ds = new DiscountPross();
ds.setDiscount(discount);
System.out.println(ds.discount(19.6f));
}
}