我刚刚阅读了以下文章
这里:What is the best approach to use multiple services inside a resource controller?
在这里:Can I have multiple services in a Controller class - Spring MVC?
文章说我不应该在一个 Controller 类中调用多个服务。我应该将所有服务封装在一个 Facade 类(Facade 模式)中。
那么为什么我不应该在一个 Controller 类中调用多个服务呢?
我可以在一个服务类中调用多个服务吗?正确吗?
最佳答案
从技术上讲,没有什么可以阻止您从 Controller 调用多个服务,但这可能是一个糟糕的设计决策,主要是由于 Single Responsibility Principle 。粗略地说,这表明类应该具有单一的职责和更改的理由, Controller 是应用程序的接口(interface),并且应该只关注这一点。任何需要导入多个服务的类都可能包含一些业务逻辑,并且该代码可能比 Controller 类更好地放置在单独的业务层类中。
如果您在 Controller 的每个方法中仅使用单个服务,也许您应该将 Controller 拆分为更小的 Controller ,每个 Controller 使用与其相关的服务。
关于spring-boot - 为什么我不应该在一个 Controller 类中调用多个服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72298136/