策略模式解决了定义一系列算法、封装每个算法并使它们可以互换的需求。这种模式使算法的变化独立于使用它的客户端。当您有多种方法来执行特定任务并希望在运行时选择算法时,它非常有用。
策略模式涉及三个主要组成部分:
上下文将算法的执行委托给策略对象,这允许在运行时选择算法。
策略模式的一个实际示例是在支付处理系统中,其中不同的支付方式(例如信用卡、PayPal、银行转账)被实现为不同的策略。客户端可以在运行时选择合适的支付策略。
代码中的策略模式:
java // Strategy Interface public interface PaymentStrategy { void pay(int amount); } // Concrete Strategy 1 public class CreditCardPayment implements PaymentStrategy { private String cardNumber; public CreditCardPayment(String cardNumber) { this.cardNumber = cardNumber; } @Override public void pay(int amount) { System.out.println(amount + " paid with credit card " + cardNumber); } } // Concrete Strategy 2 public class PayPalPayment implements PaymentStrategy { private String email; public PayPalPayment(String email) { this.email = email; } @Override public void pay(int amount) { System.out.println(amount + " paid using PayPal account " + email); } } // Context public class ShoppingCart { private PaymentStrategy paymentStrategy; public void setPaymentStrategy(PaymentStrategy paymentStrategy) { this.paymentStrategy = paymentStrategy; } public void checkout(int amount) { paymentStrategy.pay(amount); } } // Client code public class Client { public static void main(String[] args) { ShoppingCart cart = new ShoppingCart(); cart.setPaymentStrategy(new CreditCardPayment("1234-5678-9876-5432")); cart.checkout(100); cart.setPaymentStrategy(new PayPalPayment("user@example.com")); cart.checkout(200); } }
以上是理解Java中的策略设计模式的详细内容。更多信息请关注PHP中文网其他相关文章!