在域模型中使用许多服务类是什么的标志

Ibr*_*jar 3 design-patterns domain-driven-design

我最近尝试过练习DDD,我发现自己走向许多域模型对象,这些对象是纯数据结构,在域模型中没有行为和大量服务,我想知道这是否是设计不良,影响的标志在我的设计或使用错误的技术开发这种应用程序的架构(实体框架),我认为它是一个90%的CRUD应用程序.

Gia*_*sio 5

域服务的百分比不是域模型质量的有用度量.

但是,如果您需要域模型, "没有行为的纯数据结构"就是代码味道.

现在,如果您的应用程序处理的业务非常复杂,您需要领域专家来理解它,那么您需要一个域模型.很少有应用需要DDD(Evans曾经说过只有5%),但它们通常是高预算的.这些预算来自两个考虑因素:业务的高度复杂性和利益相关者从中获得的竞争优势.

即使整个项目中域类的百分比也不是一个有用的指标:例如,在CQRS应用程序中,您将拥有许多DTO,但您仍然可以拥有一个接收命令的良好域模型.此外,拥有一个90%的CRUD应用程序是很好的,在一个有限的操作环境中,它需要一个域模型来强制执行复杂的业务不变量.

但是,如果您不需要域专家,则可能不需要域模型.

如果是这样,请记住,流行语驱动开发非常昂贵.如果你真的不需要它,你不
应该"尝试"使用DDD .