java策略模式代码
时间: 2024-02-21 07:55:59 浏览: 100
策略模式是一种行为设计模式,它允许在运行时选择算法的行为。在Java中,可以通过接口和多态来实现策略模式。
下面是一个简单的Java策略模式的示例代码:
首先,定义一个策略接口(Strategy):
```java
public interface Strategy {
void execute();
}
```
然后,实现不同的策略类,这些类都实现了策略接口:
```java
public class ConcreteStrategyA implements Strategy {
@Override
public void execute() {
System.out.println("执行策略A");
}
}
public class ConcreteStrategyB implements Strategy {
@Override
public void execute() {
System.out.println("执行策略B");
}
}
public class ConcreteStrategyC implements Strategy {
@Override
public void execute() {
System.out.println("执行策略C");
}
}
```
接下来,创建一个上下文类(Context),它包含一个策略对象,并提供一个方法来执行策略:
```java
public class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void executeStrategy() {
strategy.execute();
}
}
```
最后,在客户端代码中使用策略模式:
```java
public class Main {
public static void main(String[] args) {
// 创建不同的策略对象
Strategy strategyA = new ConcreteStrategyA();
Strategy strategyB = new ConcreteStrategyB();
Strategy strategyC = new ConcreteStrategyC();
// 创建上下文对象,并设置不同的策略
Context context = new Context(strategyA);
// 执行策略A
context.executeStrategy();
// 设置策略B,并执行
context.setStrategy(strategyB);
// 执行策略B
context.executeStrategy();
// 设置策略C,并执行
context.setStrategy(strategyC);
// 执行策略C
context.executeStrategy();
}
}
```
这个示例中,通过创建不同的策略对象,并将其传递给上下文对象,可以在运行时选择不同的策略来执行。
阅读全文