【设计模式】SpringBoot优雅使用策略模式
// 策略接口
public interface Strategy {
void execute();
}
// 策略实现A
public class StrategyA implements Strategy {
@Override
public void execute() {
// 实现细节A
}
}
// 策略实现B
public class StrategyB implements Strategy {
@Override
public void execute() {
// 实现细节B
}
}
// 策略上下文
public class StrategyContext {
private Strategy strategy;
public StrategyContext(Strategy strategy) {
this.strategy = strategy;
}
public void execute() {
strategy.execute();
}
}
// Spring Boot 配置类
@Configuration
public class StrategyConfiguration {
@Bean
public Strategy strategyA() {
return new StrategyA();
}
@Bean
public Strategy strategyB() {
return new StrategyB();
}
@Bean
public StrategyContext strategyContext(@Qualifier("strategyA") Strategy strategyA,
@Qualifier("strategyB") Strategy strategyB) {
// 根据实际情况选择策略实例
StrategyContext context = new StrategyContext(strategyA);
// 或者
// StrategyContext context = new StrategyContext(strategyB);
return context;
}
}
// 使用策略的地方
public class Client {
private StrategyContext context;
public Client(StrategyContext context) {
this.context = context;
}
public void executeStrategy() {
context.execute();
}
}
这个例子展示了如何在Spring Boot应用中定义和使用策略模式。策略接口定义了执行的方法,具体策略实现了这些方法。在Spring配置类中,我们定义了策略的Bean,并创建了策略上下文的Bean,其中注入了一个具体策略的实例。在客户端,我们通过策略上下文来执行策略。这样的设计方式使得我们可以通过配置来切换不同的策略,同时保持了代码的清晰度和可维护性。
评论已关闭