java使用策略模式实现支付功能
在Java中使用策略模式实现支付功能,可以按照以下步骤进行:
- 定义支付策略接口(PaymentStrategy),包含一个支付方法(pay)。
public interface PaymentStrategy {
void pay(double amount);
}
- 创建具体的支付策略实现类,实现支付策略接口。
public class CreditCardPayment implements PaymentStrategy {
private String cardNumber;
private String expiryDate;
private String cvv;
public CreditCardPayment(String cardNumber, String expiryDate, String cvv) {
this.cardNumber = cardNumber;
this.expiryDate = expiryDate;
this.cvv = cvv;
}
@Override
public void pay(double amount) {
System.out.println("Paid " + amount + " using credit card.");
}
}
public class PayPalPayment implements PaymentStrategy {
private String email;
private String password;
public PayPalPayment(String email, String password) {
this.email = email;
this.password = password;
}
@Override
public void pay(double amount) {
System.out.println("Paid " + amount + " using PayPal.");
}
}
- 创建一个支付上下文(PaymentContext)类,用于设置和获取支付策略。
public class PaymentContext {
private PaymentStrategy paymentStrategy;
public void setPaymentStrategy(PaymentStrategy paymentStrategy) {
this.paymentStrategy = paymentStrategy;
}
public void pay(double amount) {
paymentStrategy.pay(amount);
}
}
- 在客户端代码中使用策略模式进行支付。
public class Main {
public static void main(String[] args) {
PaymentContext paymentContext = new PaymentContext();
// 使用信用卡支付
PaymentStrategy creditCardPayment = new CreditCardPayment("1234567890", "12/23", "123");
paymentContext.setPaymentStrategy(creditCardPayment);
paymentContext.pay(100.0);
// 使用PayPal支付
PaymentStrategy payPalPayment = new PayPalPayment("example@example.com", "password");
paymentContext.setPaymentStrategy(payPalPayment);
paymentContext.pay(200.0);
}
}
通过使用策略模式,可以实现支付功能的灵活扩展,可以轻松添加新的支付策略实现类,并且在运行时可以动态地切换支付策略
原文地址: http://www.cveoy.top/t/topic/iXsv 著作权归作者所有。请勿转载和采集!