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动态代理