首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清洁领域驱动的设计(DDD)是一个乌托邦吗?

清洁领域驱动的设计(DDD)是一个乌托邦吗?
EN

Stack Overflow用户
提问于 2011-06-08 07:51:07
回答 1查看 1.9K关注 0票数 10

我想我读过所有关于DDD的书,以及如何在C#中应用它(3-5本书,不记得几年前)。

但是在过去的两年里,我在所有的项目中都使用了贫血领域模型,而且效果很好。实际上,我从未尝试过实现纯域模型,而且我也从未见过使用干净域模型方法的代码。

例如,书中关于DDD的代码并不遵循DDD风格。例如,Tim MacCarthy书中关于DDD http://dddpds.codeplex.com/的代码代码,看看他的领域对象,它们与任何行为都是干净的--这只是DTO集成到域对象中的唯一东西是验证,如果我正确地记住在DDD中您的域不应该处于无效状态,那么您应该防止设置无效的值并抛出异常,而不是允许设置它们并在某个时候进行验证。

与其他书籍和示例代码的情况相同,它们都非常简单,只显示一个具有属性的类,您可以找到的最大结果是插入\删除设置父属性的子对象的一组方法。例如,我几乎没有看到代码使用域事件,或者将服务注入域对象。

2003年,马丁·福勒( Martin )写了一篇文章,告诉我们贫血领域模型是一件坏事,http://www.martinfowler.com/bliki/AnemicDomainModel.html已经过去8年了,我认为贫血模型现在相当流行(它演变为分层体系结构)。并广泛应用于3层RIA开发.

所以我的主要问题是干净的DDD是一个乌托邦?它死了吗?因为我在过去3年中看到的所有代码都是分层架构(在我看来,这是一个专门的贫血域模型)。我非常希望看到一些干净的DDD代码,如果它存在的话。

EN

回答 1

Stack Overflow用户

发布于 2011-06-08 08:03:45

你并不孤单。在大多数地方,真正的DDD将是一个乌托邦。根据我的经验,这主要有两个原因。

  1. 业务还不成熟,无法帮助开发人员进行领域建模。没有足够的时间、资源和精力去做这件事。
  2. 项目组没有特别的经验,如果他们以前没有做过DDD。

DDD也不适用于许多CRUDy应用程序。还有其他方法,如CQRS。还请参阅下面的博客链接,这些链接为贫血领域模型提供了一个案例。

http://codebetter.com/gregyoung/2009/07/15/the-anemic-domain-model-pattern/

http://lostechies.com/jimmybogard/2009/12/03/persistence-model-and-domain-anemia/

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6275736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档