Ext*_*kun 5 language-agnostic domain-driven-design
有时,我正在编码的某些服务需要另一个服务已实现的功能。例如,在编写一个服务,在单次交易后返回某个ID的用户购买的产品,我需要用户购买产品后的帐户余额,因此我调用另一个服务来获取数据。
我可以看到一些替代方案:
这样做很好,因为您正在重用代码。
服务应该访问自己的存储库以检索其操作的数据
服务应该相互隔离,并且只属于一个域。在我的例子中,我应该有另一个层,可能是一个 ViewFactory,来调用服务来获取相关数据
在这个问题上普遍接受的规范是什么?
您的问题是关于域服务,而不是应用程序或基础设施服务?如果是这样,DDD 没有关于将域服务彼此隔离的具体指南。使用您的判断并注意SOLID违规。还要记住,域服务经常被滥用,将更多的逻辑放入 Entities是有意义的:
应该明智地使用 SERVICES,并且不允许剥夺其所有行为的实体和价值对象。