Spring下的策略模式的实现
在网上看到许多策略模式的实现,使用JAVA原生的比较多,也有一部分是使用Spring配置文件实现的。使用注释的比较少。所以我也就准备写一篇使用注释的文章。
下面是UML
Strategy的代码实现
public interface Strategy {
public String action();
}PrintStrategy的代码实现
@Component("print")
public class PrintStrategy implements Strategy {
@Override
public String action() {
return "打印!!";
}
}WriteStrategy的代码实现
@Component("write")
public class WriteStrategy implements Strategy {
@Override
public String action() {
return "写字!!!";
}
}ContextSpringFactory的代码实现
@Component
public class ContextSpringFactory {
@Autowired
private Map<String, Strategy> stgMap;
public String doAction(String strType) {
Strategy strategy = this.stgMap.get(strType);
return strategy.action();
}
}调用方法
@RestController
public class DcController {
@Autowired
private ContextSpringFactory factory;
@GetMapping("/doAction")
public String strategy(){
String result = factory.doAction("print");
return result;
}
}希望文章能对大家有所帮助。谢谢大家。
下一篇:
代理模式之JDK动态代理
