DDD的理解问题

09-12-14 punkflyer
我想问一下,是不是DDD里,应用层和持久层都给领域层提供数据来源,然后领域层负责加工?

FORM算不算应用层里的类?

banq
2009-12-14 15:32
基本是这个意思,FORM算表现层也就是应用层的类,不是领域层的。

punkflyer
2009-12-14 16:19
那是不是这样理解:

用Spring框架构建领域层对象的资源库

领域层对象可以从这个资源库里使用需要的对象?(包括应用层对象和持久层对象)

banq
2009-12-14 16:48
2009年12月14日 16:19 "punkflyer"的内容
那是不是这样理解:

用Spring框架构建领域层对象的资源库

领域层对象可以从这个资源库里使用需要的对象?(包括应用层对象和持久层对象)

是的,注意Spring管不到领域对象,领域对象的实体一般由Hibernate管理,Spring离领域驱动设计差一截子。

punkflyer
2009-12-15 10:33
现在思路清晰多了,那么接下来的领域设计里,是不是就是设计模式发挥作用了?

在模拟世界的问题上?都能用OO解决么?

punkflyer
2009-12-16 17:29
看来BANQ没回答,那就是默认了??

banq
2009-12-16 17:37
2009年12月15日 10:33 "punkflyer"的内容
现在思路清晰多了,那么接下来的领域设计里,是不是就是设计模式发挥作用了?

在模拟世界的问题上?都能用OO解决么?

是的,如下图: MartinFowler言论:

punkflyer
2009-12-21 10:21
又有一点关于值对象和实体想法,在如何区分值对象和实体的时候,是不是可以这样分析

如果对象的一个属性(对象),他的数据是唯一的,并且以这个属性(对象)的数据来区分对象,那么这个属性(对像)就是实体?

如果对象的一个属性(对象),他的数据不是唯一的,可以相同,那么这个属性(对象)就是值对象?

并且值对象里可以有实体?实体里也可以值对象?

还是一旦对象里有了实体,他就是实体?

banq
2009-12-21 17:43
2009年12月21日 10:21 "punkflyer"的内容

如果对象的一个属性(对象),他的数据是唯一的,并且以这个属性(对象)的数据来区分对象,那么这个属性(对像)就是实体?

如果对象的一个属性(对象),他的数据不是唯一的,可以相同,那么这个属性(对象)就是值对象?

并且值对象里可以有实体?实体里也可以值对象?

还是一旦对象里有了实体,他就是实体?

实体和值对象需要从业务情况出发来分辨,两者在不同业务场景下可以互换,所以,单纯从对象层次是无法分清楚他们的。

xiaobruce
2010-01-28 19:07
在一个业务场景下,你所关心的实体可能就只有一个,其他的可以看作是值对象

猜你喜欢