首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将服务层与控制器层解耦的设计模式Spring boot的最佳实践

将服务层与控制器层解耦的设计模式Spring boot的最佳实践
EN

Stack Overflow用户
提问于 2021-02-03 05:24:36
回答 1查看 82关注 0票数 1

我在我的层服务中有多个服务,我必须执行一些方法,但每个方法在不同的服务中。

我的MyLastService服务的MyLastService有很多功能和自动连接的服务示例:

代码语言:javascript
复制
@Service
class MyLastServiceImp implement MyLastService{
  @Autowired
  ProductService productService;

  @Autowired
  OrderService orderService; 

  @Autowired
  UserService userService;

  @Autowired
  ReferentialService referentialService;

  void addNewOrder(MyRequest req) {
    try {
     Product p = productService.findProduct(req.getProductId());
     User u = userService.findUserByUserName(req.getUserName()); 
     City c = referentialService.findCity(req.getCity());
     orderService.addOrder(p, u, c);
   }
    catch(Exception e) {
      LOGGER.error("error : {}", e.getMessage());
    }
  }
}

我对这个实现并不满意,因为我将有很多其他的服务,并且将所有的服务都放在一个服务中,MyLastService会使我的代码难以阅读和维护。这就是为什么我现在为我的应用程序搜索一个设计模式。

如果我将所有其他服务都放到MyLastService中,他会发生什么?

我现在的想法是添加新的层,但我不知道是什么?

有没有人可以向我推荐这个用例的最佳实践?

EN

回答 1

Stack Overflow用户

发布于 2021-02-03 05:34:06

您没有创建从一个服务到另一个服务的依赖,这一点做得很好。

在这种情况下,在我看来,您应该使用Facade

在您的例子中,这个外观类似于OrderFacade。然后,这个Facade将执行您在发布的代码中正在执行的操作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66017868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档