编程语言
首页 > 编程语言> > c# – 在具有服务层的多层体系结构中,让一个服务调用另一个服务是否可以接受?

c# – 在具有服务层的多层体系结构中,让一个服务调用另一个服务是否可以接受?

作者:互联网

我有一个多层应用程序,其中包含一个包含存储库的数据层.

最重要的是,我有一个服务层.我的理解是每个存储库应该有一个服务.

服务A是否可以调用ServiceB中的另一个方法?当然,这会在服务A中创建对服务B的依赖(我正在使用接口和DI).

在我的示例中,我有一个用户服务,用于处理,添加用户,验证用户,按ID查找用户等.我还有一个Book服务,允许我为特定用户添加书籍.

书籍服务是否应该调用用户服务来检索要将书籍添加到的用户实例?

解决方法:

简短回答:是的

有点短:

您的替代方案是让“书籍服务”直接访问“用户存储库”或扩展用户服务,以便它能够添加书籍 – 这既不是一个好的选择……所以做你所描述的是正确的( Book Service访问用户服务)…一个更“纯粹的选择”是创建一个控制器/聚合/事务/协调器服务,它使用book服务和用户服务来实现你所描述的内容,这样两种“直接服务” (书籍和用户)保持“无依赖性”……

标签:c,net,asp-net,entity-framework,multi-tier
来源: https://codeday.me/bug/20190613/1235428.html