策略模式
策略使用的就是面向对象的集成和多态机制,从而实现同一行为在不同场景下具备不同实现。例如支付的多种方式。与委派模式不同,委派模式注重的是结果,将任务分派给某个角色,具体任务怎么执行,对调用者完全透明,调用者只关心结果;而策略模是通过某个条件拿到一个具体解决方案,最终还是要自己去调用执行。

//支付方式通用父类
public abstract class Payment {
//支付方式
protected abstract String getName();
//查询余额
protected abstract double queryBalance(String uid);
//扣款
public MsgResult pay(String uid, double amount){
double balance = queryBalance(uid);
if(amount <= balance) {
balance = balance - amount;
return new MsgResult(200, "支付成功", String.format("支付%s元,剩余%s元", amount, balance));
}else{
return new MsgResult(500, "支付失败", String.format("余额不足,当前余额%s元,需要支付%s元"));
}
}
}
//ali支付
public class AliPay extends Payment{
