ddd - 我的服务是域名还是应用程序?

时间:2016-07-27 07:39:34

标签: domain-driven-design

我无法确定我创建的服务是域名服务还是应用程序服务。从我阅读的书" PHP中的领域驱动设计",据说应用服务就像一个"用户签名请求",访问存储库并验证用户是否存在或不。但是,他们采用相同的示例将其实现为域服务,因此我无法区分它们。

我的情况如下:我正在创建一个动态页面构建器。一个页面尽可能多的块,它们都是基块的子类。 Base Block的每个子类都有自己的业务规则,允许用户自定义其设计(基本上它应该返回一个表单,每个Block都不同)。

我从用例&#34开始;用户想要在页面上添加[特定块]。

我想知道这是域服务还是应用服务。非常感谢任何帮助

1 个答案:

答案 0 :(得分:3)

您的应用程序服务通常负责编排用例,并执行诸如从持久性加载/保存聚合的操作。

即。类似的东西:

public void SomeUseCase()
{
     var aggregate = _repository.Load(someId);
     aggregate.ApplySomeBehaviour(someDomainService);
     _repository.Save(aggregate);
}

而域名服务更具特定于域行为,例如RateCalculator - 某些对象不适合聚合概念,但包含您需要在域中捕获的行为。

Domain Driven Design: Domain Service, Application Service

可能重复