策略模式是一种行为设计模式,它允许你在运行时选择算法的行为。通过将每个算法封装到独立的类中,策略模式使得算法可以互相替换,而不影响客户端代码。这种灵活性使得策略模式在许多不同的场景下都非常有用。
在Java中实现策略模式的关键是定义一个共同的接口或抽象类,用于表示不同算法的策略。然后,针对每个具体策略,创建一个实现该接口的具体类。客户端代码可以根据需要选择不同的策略,并将其作为参数传递给上下文对象。
让我们通过一个具体的例子来演示策略模式的使用。假设我们正在开发一个电商平台,需要根据不同的支付方式计算订单的总金额。我们将定义一个PaymentStrategy接口表示不同的支付策略,并实现具体的策略类CreditCardStrategy和PayPalStrategy。
首先,我们定义PaymentStrategy接口:
public interface PaymentStrategy {
void pay(double amount