Design patterns DDD实体与服务中的方法
我们的团队是DDD的新手,正在尝试在我们当前的项目中实现一些概念。出现的一个问题是,是将方法放入实体对象还是服务对象中 一些团队成员认为实体应该只包含值,所有功能都应该包含在服务中。其他人认为这会使实体对象变得贫乏,他们应该拥有与实体相关的功能,而服务对象应该用于更多的交叉功能Design patterns DDD实体与服务中的方法,design-patterns,oop,dns,domain-driven-design,Design Patterns,Oop,Dns,Domain Driven Design,我们的团队是DDD的新手,正在尝试在我们当前的项目中实现一些概念。出现的一个问题是,是将方法放入实体对象还是服务对象中 一些团队成员认为实体应该只包含值,所有功能都应该包含在服务中。其他人认为这会使实体对象变得贫乏,他们应该拥有与实体相关的功能,而服务对象应该用于更多的交叉功能 我们想知道DDD的正式观点是什么,以及在现实生活中对人们起到了什么作用。DDD没有正式的观点,但rich Domaim模型的全部目的是避免出现错误,因此明确拒绝在域对象上放置任何行为违背了它的精神 一个学派认为域对象应该
我们想知道DDD的正式观点是什么,以及在现实生活中对人们起到了什么作用。DDD没有正式的观点,但rich Domaim模型的全部目的是避免出现错误,因此明确拒绝在域对象上放置任何行为违背了它的精神 一个学派认为域对象应该是POCOs/POJO,这意味着它们不应该包含作为成员的抽象服务。然而,这并不意味着他们不能拥有与这些服务交互的方法 您可以为每个域对象提供的(相关)行为越多越好。根据,有三种基本类型的对象
- 实体
- 价值对象
- 服务
我们通常很擅长为每件事举例说明,但当谈到DDD体系结构时,每个工程师似乎都是一个理论物理主义者,并且在没有一段代码作为例子的情况下就这个主题写文章。我读到实体(域对象)不应该依赖于服务(我相信你在这里也是这么说的)。但是实体怎么能有一个与服务交互的方法呢?如果一个实体有一个对服务的引用,这不是一个依赖关系吗?@Hooman One可以将服务作为方法参数传递,但一般来说,我不推荐这种风格。如果我理解正确的话,DDD社区,包括Evans本人,已经越来越成为现实我认为DDD和OOD不能很好地结合。FP更适合。请参阅,例如,获取高级概述。Vimeo链接已失效。以下是YouTube上的谈话标记: