策略模式解決了定義一系列演算法、封裝每個演算法並使它們可以互換的需求。這種模式使演算法的變化獨立於使用它的客戶端。當您有多種方法來執行特定任務並希望在運行時選擇演算法時,它非常有用。
策略模式涉及三個主要組成部分:
上下文將演算法的執行委託給策略對象,這允許在運行時選擇演算法。
策略模式的一個實際範例是在支付處理系統中,其中不同的付款方式(例如信用卡、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中文網其他相關文章!