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;
    }
}
希望文章能对大家有所帮助。谢谢大家。




经验分享 程序员 微信小程序 职场和发展