域驱动设计 – 您能否提出DDD最佳做法
可能类似的问题已经被问了很多次,但我认为每一个反应都有助于使DDD的理解更好,更好。我想描述我如何看待DDD的某些方面。我有一些基本的不确定性,如果有人能够给予坚实和实用的欢迎,会感激。请注意,这些问题是DDD的“经典”方法。这意味着使用ORM等。在这里不考虑像CQRS和事件采购等方法。
>聚合和实体是实现域逻辑的主要对象。他们有国家和身份。在这种情况下,我将域逻辑看作是突破该状态的所有命令的集合。那有意义吗?为什么域逻辑仅与状态相关?模拟没有标识或没有状态的域对象是否合法?为什么域对象不能实现为事务脚本?示例:考虑一个对象,建议您为约会网站的合作伙伴。那个对象没有真正的状态,但是它有很多的域逻辑?将其放入服务层意味着域模型不能覆盖所有的逻辑。 谢谢
尽管我上面的评论,我已经刺伤了你的观点。 (注意:我不是埃里克·埃文斯(Jim Evans)或吉米·尼尔森(Jimmy Nilsson),所以我的“建议”用一粒盐。
>你的例子“考虑一个建议你做一个约会网站的合作伙伴的对象”,属于域服务(而不是基础设施服务)。看这篇文章 – http://lostechies.com/jimmybogard/2008/08/21/services-in-domain-driven-design/>聚合不直接访问存储库,但它们可以创建一个将多个域对象的操作组合成一个单元的工作单元。>不知道这个。这本来应该是一个问题。>这是有争议的,从理论上说,域实体不会在总根以外直接可用,但并不总是实用的。我根据具体情况考虑这一决定。>我不知道你的意思是什么是“查询”。如果对您域中所有可能的“阅读”情景进行建模似乎不实用或提供足够的性能,则表明CQRS解决方案可能是最好的。>是的,我同意。 UOW是您可以在各种图层中使用的工具箱中的工具。>这个说法根本错了“业务逻辑不是域逻辑”。域是表示业务逻辑,因此是使用普遍存在的语言的一个原因。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |