我在我的层服务中有多个服务,我必须执行一些方法,但每个方法在不同的服务中。
我的MyLastService服务的MyLastService有很多功能和自动连接的服务示例:
@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中,他会发生什么?
我现在的想法是添加新的层,但我不知道是什么?
有没有人可以向我推荐这个用例的最佳实践?
发布于 2021-02-03 05:34:06
您没有创建从一个服务到另一个服务的依赖,这一点做得很好。
在这种情况下,在我看来,您应该使用Facade。
在您的例子中,这个外观类似于OrderFacade。然后,这个Facade将执行您在发布的代码中正在执行的操作
https://stackoverflow.com/questions/66017868
复制相似问题