应用程序或域服务中的DDD存储库
这些天,我正在学习DDD,并且对如何使用DDD管理存储库有一些疑问。 实际上,我遇到了两个可能性: 第一 我读过的管理服务的第一种方法是在应用程序服务中注入存储库和域模型。 这样,在一种应用程序服务方法中,我们称为域服务方法(检查业务规则),如果条件良好,则在特殊方法上调用存储库以从数据库中持久化/检索实体。 一个简单的方法可以是: class ApplicationService{ constructor(domainService, repository){ this.domainService = domainService this.repository = repository } postAction(data){ if(this.domainService.validateRules(data)){ this.repository.persist(new Entity(data.name, data.surname)) } // ... } } 第二个 第二种可能性是将存储库注入domainService内,并且仅通过域服务使用存储库: class ApplicationService{ constructor(domainService){ this.domainService = domainService } postAction(data){ if(this.domainService.persist(data)){ console.log('all is good') } // ... } } class DomainService{ constructor(repository){ this.repository …