# 策略模式实现多种支付方式
首先我们要来了解什么是策略模式
<br/>
## 定义
策略模式属于对象的行为模式。其中用意是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化,也就是在策略模式中,一个类的行为或其算法可以在运行时更改。
<br/>
<br/>
## 举例 不使用策略模式时实现多种支付方式
```java
/**
* 订单类
*/
public class Order {
// 订单id
private String orderId;
// 支付方式
private String payType;
// 订单金额
private BigDecimal amount;
public Order(String orderId, String payType, BigDecimal amount) {
this.orderId = orderId;
this.payType = payType;
this.amount = amount;
}
/**
* 订单支付方法
*
* @return
*/
public boolean pay() {
// 是否支付成功
boolean payment = false;
if ("aliPay".equals(payType)) {
System.out.println("用户选择 支付宝 支付,订单号为:" + orderId + " ,支付金额:" + amount);
payment = true;
} else if ("jdPay".equals(payType)) {
System.out.println("用户选择 京东 支付,订单号为:" + orderId + " ,支付金额:" + amount);
payment = true;
} else if ("wechatPay".equals(payType)) {
System.out.println("用户选择 微信 支付,订单号为:" + orderId + " ,支付金额:" + amount);
payment = true;
}
return payment;
}
}
```
<br/>
<br/>
### 测试类:
```java
/**
* @author: DIANWEI
* @create: 2021/12/30
* @Description:
* @FileName: test
* @Hi