springboot中工厂+策略模式实际应用
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class StrategyConfiguration {
@Autowired
private MyService myService;
@Bean
public StrategyFactory strategyFactory() {
return new StrategyFactory(myService);
}
}
// 策略接口
public interface MyStrategy {
void execute();
}
// 策略实现
public class MyConcreteStrategy implements MyStrategy {
private MyService myService;
public MyConcreteStrategy(MyService myService) {
this.myService = myService;
}
@Override
public void execute() {
// 实现具体的策略逻辑
}
}
// 服务层
public class MyService {
// 服务方法
}
// 策略工厂
public class StrategyFactory {
private MyService myService;
public StrategyFactory(MyService myService) {
this.myService = myService;
}
public MyStrategy getStrategy(String type) {
if ("concrete".equals(type)) {
return new MyConcreteStrategy(myService);
}
// 可以添加更多的策略
return null;
}
}
这个例子展示了如何在Spring Boot中使用工厂和策略设计模式。StrategyConfiguration
类中定义了一个配置方法strategyFactory()
,它创建了一个StrategyFactory
的实例,并将依赖注入到工厂中。MyConcreteStrategy
是一个具体的策略实现,它使用了MyService
。StrategyFactory
的getStrategy
方法根据类型参数返回相应的策略对象。这样,你可以通过工厂模式动态地获取策略实现,而不需要在应用中硬编码策略的创建逻辑。
评论已关闭