在有关域服务(“ https://aspnetboilerplate.com/Pages/Documents/Domain-Services”的在线文档中,有一节名为“我们如何强制使用域服务?”。
在这里您暗示着有很多关于将某种“策略”服务注入到实体中作为此方法的概念的外部文档,但是本文对该类的实现含糊不清,以及应该在哪里注射以及如何使用它。我一直在Internet上搜索这种设计的示例来强制使用域服务,但是却找不到任何东西。
仅浏览该文档会留下太多问题。
此外,我希望可以找到一个Abp的简单实现,它提供了一个示例,但找不到任何东西。
我对此很好奇,因为我发现过去这对大型项目来说是个大问题:开发人员在应用程序服务层中编写自己的代码,却不知道这些功能已经在某些域驱动中提供了“经理”服务。
您能否提供一个完整实施此概念的快速小样本?使用Abp会很好,但一般的例子也可以。
保重,
杰森
答案 0 :(得分:0)
一些想法:
该代码中的策略模式在强制使用域服务方面不起作用。它只是使任务分配更具模块化和更符合SRP。
防御性编程只能为您做很多。当然,保护AssignedPersonId
使其不能直接分配是一件好事,但是程序员也可以将其改回公开。不要过多地依赖技术代码来防止不良的开发人员行为-共享的实践和团队文化会更有效率。
(如您所愿)质疑应用程序示例或模板代码。不要将这些代码当作福音真理-绝不意味着要成为榜样。尝试自己的东西,并从错误中学习。经验是无法通过此类文档传播的。