在资源控制器内使用多个服务的最佳方法是什么?

2024-07-04

我有一个调用三个服务的控制器:

public class ProductController() {
    @Autowired
    private AccountService accountService;

    @Autowired
    private ProcessService processService;

    @Autowired
    private releaseService releaseService;

    @RequestMapping("/process")
    public Product process(@RequestParam(value="name", defaultValue="docs")     ProductProcessed process) {

        accountService.notify();
        releaseService.sendRelease(process);


        return processService.process(process);
    }
}

封装此服务调用的最佳方法是什么?


您正在寻找的可能是一些设计模式。我的方法可能是创建一个粗粒度的facade http://en.wikipedia.org/wiki/Facade_pattern细粒度的服务(帐户、流程和发布)。 (也可以看看粗粒度与细粒度 https://stackoverflow.com/questions/3766845/coarse-grained-vs-fine-grained)

Facade 基本上将这 3 个服务注入其中,并封装您当前让控制器执行的行为。通过这种方式,您可以最大限度地减少调用控制器中粗粒度服务的业务逻辑,从而进一步封装系统的内部结构。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在资源控制器内使用多个服务的最佳方法是什么? 的相关文章

随机推荐