如何强制使用域服务?

时间:2018-07-19 21:03:09

标签: domain-driven-design aspnetboilerplate

在有关域服务(“ https://aspnetboilerplate.com/Pages/Documents/Domain-Services”的在线文档中,有一节名为“我们如何强制使用域服务?”。

在这里您暗示着有很多关于将某种“策略”服务注入到实体中作为此方法的概念的外部文档,但是本文对该类的实现含糊不清,以及应该在哪里注射以及如何使用它。我一直在Internet上搜索这种设计的示例来强制使用域服务,但是却找不到任何东西。

仅浏览该文档会留下太多问题。

此外,我希望可以找到一个Abp的简单实现,它提供了一个示例,但找不到任何东西。

我对此很好奇,因为我发现过去这对大型项目来说是个大问题:开发人员在应用程序服务层中编写自己的代码,却不知道这些功能已经在某些域驱动中提供了“经理”服务。

您能否提供一个完整实施此概念的快速小样本?使用Abp会很好,但一般的例子也可以。

保重,

杰森

1 个答案:

答案 0 :(得分:0)

一些想法:

  • 该代码中的策略模式在强制使用域服务方面不起作用。它只是使任务分配更具模块化和更符合SRP。

  • 防御性编程只能为您做很多。当然,保护AssignedPersonId使其不能直接分配是一件好事,但是程序员也可以将其改回公开。不要过多地依赖技术代码来防止不良的开发人员行为-共享的实践和团队文化会更有效率。

  • (如您所愿)质疑应用程序示例或模板代码。不要将这些代码当作福音真理-绝不意味着要成为榜样。尝试自己的东西,并从错误中学习。经验是无法通过此类文档传播的。