关于实体域对象

07-01-17 zhaow8810
实体域对象的粒度范围问题。如果实体模型跟另外几个实体模型都有不同程度的双向关联(关联是必须的不能删减)那么这个实体模型设计时是否需要把另外几个实体模型关系都包含在自己的属性中那?比如包含两个set 两个Map。

我只是不清楚是否应该只要有关联就包含他,这样实体模型会很大,而且并不一定在每个业务中都能应用到所有的属性。最正确的做法是什么啊?

                   

1
banq
2007-01-18 09:28
>是否应该只要有关联就包含他

是的,这是关联的Java表示法。

>关联是必须的不能删减

这个不是完全正确的,高聚合 低关联是设计原则,只要能够区分出关联和聚合的微妙区别,我们就可以留下聚合,剔除关联,Evans DDD认为不必要关联就不要,双向关联必须杜绝,有人曾经搞了一个大系统几百个光头模型,这说明,关联只要分析到位,可以去除的。

coolyu
2007-01-25 09:29
banq:有没有实际的例子说明?我现在也遇到类似的问题,不知如何解决

banq
2007-01-26 14:19
>有没有实际的例子说明

jivejdon3.0就是实例阿。

zhaow8810
2007-01-30 19:18
现在对持久层有些迷惑,觉得可能是有很多种设计方法,不是很绝对的就得怎么去设计。hibernate的设计就是针对对象关系映射,他的实体设计方式似乎和我们最早使用的jdbc直接CRUD时的实体设计方式不太一样。(我只是觉得不知道对否)。Hibernate可以把对象间的关系分析的很透彻。用几种策略表达对象间的关系。可通过这种关系将对象持久化。而jdbc则不同,可能会多写些循环,多几次调用。关系是我们自己在对象间维护的而没有那些像Hibernate的策略,这样就给人设计上的迷茫感,好象有一个应该是对的,或者说好象Hibernate是标准的,但又不能把他的策略应用到jdbc中。这可是banq最重视的实体域对象啊,弄不好系统就不怎么好。很关键值得学习

猜你喜欢
2Go 1 2 下一页