以报价为例,介绍策略模式
public interface strategy {
double getPrice(double price);
}
public class newcustomerImpl implements strategy{
@Override
public double getPrice(double price) {
return 0.9*price;
}
}
public class oldcustomerImpl implements strategy{
@Override
public double getPrice(double price) {
return 0.88*price;
}
}
public class vipcustomerImpl implements strategy{
@Override
public double getPrice(double price) {
return 0.7*price;
}
}
public class context {
private strategy strate;
public context(strategy strate) {
this.strate = strate;
}
public double getPrice(double price) {
return strate.getPrice(price);
}
}
//测试代码
public class ClientCustomer {
public static void main(String[] args) {
strategy strate = new newcustomerImpl();
context con = new context(strate);
System.out.println(con.getPrice(80));
}
}