在Java中使用策略模式,首先需要定义一个接口,该接口表示一个策略的抽象。接着,针对不同的具体策略,实现该接口的多个实现类。最后,在使用策略的地方,通过传递不同的具体策略对象来实现不同的行为。
以下是一个简单的示例:
首先,定义一个策略接口:
public interface Strategy {
void execute();
}
接着,实现不同的具体策略类:
public class StrategyA implements Strategy {
@Override
public void execute() {
System.out.println("执行策略A");
}
}
public class StrategyB implements Strategy {
@Override
public void execute() {
System.out.println("执行策略B");
}
}
public class StrategyC implements Strategy {
@Override
public void execute() {
System.out.println("执行策略C");
}
}
最后,在使用策略的地方,通过传递不同的具体策略对象来实现不同的行为:
public class Context {
private Strategy strategy;
public void setStrategy(Strategy strategy) {
this.strategy = strategy;
}
public void executeStrategy() {
strategy.execute();
}
}
public class Main {
public static void main(String[] args) {
Context context = new Context();
// 设置策略A并执行
context.setStrategy(new StrategyA());
context.executeStrategy(); // 输出:执行策略A
// 设置策略B并执行
context.setStrategy(new StrategyB());
context.executeStrategy(); // 输出:执行策略B
// 设置策略C并执行
context.setStrategy(new StrategyC());
context.executeStrategy(); // 输出:执行策略C
}
}
通过上述示例,可以看到策略模式的使用方式。通过定义接口和多个实现类,可以实现不同的行为,并通过具体策略对象的传递来使用不同的策略。