Java 策略模式实现多种支付方式代码示例 - 灵活高效处理支付逻辑
策略模式是一种行为型设计模式,它定义了一系列的算法,并将每个算法封装到独立的类中,使得它们可以互相替换。在这个问题中,我们可以使用策略模式来实现多种支付方式。\n\n首先,我们需要创建一个接口,定义支付方式的通用行为:\n\njava\npublic interface PaymentStrategy {\n void pay(double amount);\n}\n\n\n然后,我们可以创建不同的支付方式类,实现接口中的方法:\n\njava\npublic class CreditCardStrategy implements PaymentStrategy {\n private String cardNumber;\n private String cvv;\n private String expiryDate;\n\n public CreditCardStrategy(String cardNumber, String cvv, String expiryDate) {\n this.cardNumber = cardNumber;\n this.cvv = cvv;\n this.expiryDate = expiryDate;\n }\n\n @Override\n public void pay(double amount) {\n // 实现信用卡支付的逻辑\n System.out.println(amount + " paid with credit card");\n }\n}\n\npublic class PayPalStrategy implements PaymentStrategy {\n private String email;\n private String password;\n\n public PayPalStrategy(String email, String password) {\n this.email = email;\n this.password = password;\n }\n\n @Override\n public void pay(double amount) {\n // 实现PayPal支付的逻辑\n System.out.println(amount + " paid with PayPal");\n }\n}\n\npublic class AliPayStrategy implements PaymentStrategy {\n private String account;\n private String password;\n\n public AliPayStrategy(String account, String password) {\n this.account = account;\n this.password = password;\n }\n\n @Override\n public void pay(double amount) {\n // 实现支付宝支付的逻辑\n System.out.println(amount + " paid with AliPay");\n }\n}\n\n\n最后,我们可以创建一个使用支付策略的类:\n\njava\npublic class PaymentContext {\n private PaymentStrategy paymentStrategy;\n\n public PaymentContext(PaymentStrategy paymentStrategy) {\n this.paymentStrategy = paymentStrategy;\n }\n\n public void pay(double amount) {\n paymentStrategy.pay(amount);\n }\n}\n\n\n使用示例:\n\njava\npublic class Main {\n public static void main(String[] args) {\n PaymentContext paymentContext = new PaymentContext(new CreditCardStrategy("1234567890", "123", "01/23"));\n paymentContext.pay(100.0);\n\n paymentContext = new PaymentContext(new PayPalStrategy("test@example.com", "password"));\n paymentContext.pay(200.0);\n\n paymentContext = new PaymentContext(new AliPayStrategy("test@example.com", "password"));\n paymentContext.pay(300.0);\n }\n}\n\n\n输出结果:\n\n\n100.0 paid with credit card\n200.0 paid with PayPal\n300.0 paid with AliPay\n\n\n这样就完成了使用策略模式实现多种支付方式的代码实现。不同的支付方式被封装到不同的类中,通过创建不同的支付策略对象,可以在运行时选择不同的支付方式进行支付。
原文地址: https://www.cveoy.top/t/topic/qC6x 著作权归作者所有。请勿转载和采集!