策略模式实现多种支付
时间: 2023-08-16 12:12:25 浏览: 100
策略模式实现
策略模式是一种行为设计模式,可以用于实现多种支付方式。在策略模式中,我们定义了一个支付策略接口,然后针对不同的支付方式实现多个具体的支付策略类。这样,客户端可以根据需要选择不同的支付策略。
以下是一个简单的示例代码,演示如何使用策略模式实现多种支付方式:
首先,定义一个支付策略接口,例如 IPaymentStrategy:
```java
public interface IPaymentStrategy {
void pay(double amount);
}
```
然后,实现具体的支付策略类,例如 AlipayStrategy、WeChatPayStrategy、CreditCardStrategy:
```java
public class AlipayStrategy implements IPaymentStrategy {
public void pay(double amount) {
System.out.println("使用支付宝支付:" + amount + "元");
// 具体的支付逻辑
}
}
public class WeChatPayStrategy implements IPaymentStrategy {
public void pay(double amount) {
System.out.println("使用微信支付:" + amount + "元");
// 具体的支付逻辑
}
}
public class CreditCardStrategy implements IPaymentStrategy {
public void pay(double amount) {
System.out.println("使用信用卡支付:" + amount + "元");
// 具体的支付逻辑
}
}
```
最后,创建一个支付上下文类 PaymentContext,用于设置和使用具体的支付策略:
```java
public class PaymentContext {
private IPaymentStrategy paymentStrategy;
public void setPaymentStrategy(IPaymentStrategy paymentStrategy) {
this.paymentStrategy = paymentStrategy;
}
public void pay(double amount) {
paymentStrategy.pay(amount);
}
}
```
使用示例:
```java
public class Main {
public static void main(String[] args) {
PaymentContext context = new PaymentContext();
// 使用支付宝支付
context.setPaymentStrategy(new AlipayStrategy());
context.pay(100.0);
// 使用微信支付
context.setPaymentStrategy(new WeChatPayStrategy());
context.pay(200.0);
// 使用信用卡支付
context.setPaymentStrategy(new CreditCardStrategy());
context.pay(300.0);
}
}
```
输出结果:
```
使用支付宝支付:100.0元
使用微信支付:200.0元
使用信用卡支付:300.0元
```
通过策略模式,我们可以轻松地实现多种支付方式,并且可以动态地切换不同的支付策略,而不需要修改客户端代码。
阅读全文