值对象需要持久化,但值对象又不能建仓储,比如(货币、类型)等。咋办!

09-03-17 bmrxntfj
在实际开发中经常 需要配置一些系统参数(比如角色,权限,货币,XX类型等等)

这些很显然是值对象,即使为了性能在数据库中加上个Id,但他们在领域中任然还是值对象

值对象 不可能有仓储(以为仓储是针对聚合[聚合根必然是实体]而言的。

矛盾出来了。

不知大伙怎么解决。

我思考过的办法

1.有值对象相关的实体的仓储来承担,但是问题依然麻烦(比如有些值对象,它可以被不同实体使用,那到底放在哪个上呢?)

2.有单独一个值对象仓储来承担这些值对象的持久化(但是感觉职责过载)

[该贴被bmrxntfj于2009-03-17 17:15修改过]

         

1
bmrxntfj
2009-03-18 09:12
都知道呢 还是都不知道

都知道就像女人一样叫一声嘛

在DDD书中和Martin的企业应用架构模式书中都有讨论

但都没给出解决方法,昨天晚上看了下Tim的代码

发现他用的就是我说的第一种方法

jdon 俺也常来 也没见个个都是牛逼的嘛(注:牛逼的一般都不告诉菜鸟,俺其实就是这种菜鸟,跟人家没法比,人家啥都懂,就是不告诉你)

[该贴被bmrxntfj于2009-03-18 09:12修改过]

banq
2009-03-18 12:16
>值对象 不可能有仓储

不一定吧,仓储是为了将对象从数据库床上唤醒,值对象也是对象,所以两者没有必然关系。

只要你需要保存数据库中冬眠,都必须用仓储。

不要把问题复杂化,也不要太多框架限制,MF或Evans 他们的理论也是基于对象OO思维,而OO是一个很正常自然的思维,每个人都能判断力,不需要权威再替我们做基本准则判断。

所以,关键是让自己回到自然,回到正常思维,只有得了数据库富贵病无病呻吟后,才需要去看专家门诊。

yananay
2009-03-18 13:04
“在DDD书中和Martin的企业应用架构模式书中都有讨论”

你把讨论的内容贴上来看看,俺咋就没看见他们讨论这些东西呢?

“这些很显然是值对象”

你从哪得出的结论 “这些很显然是值对象” 呢?为什么他们不能是一个 ConfigInfo 实体??

bmrxntfj
2009-03-18 16:12
值对象 不可能有仓储

我说错了,我改,可banq,下面的人 那值对象的全局查询职责由谁来承担

banq的做法就是每个值对象 都去建个仓储吗?

@yananay 别自以为是,你不好好看书,还谈什么

原来都这么牛逼的,我还真不信这不是问题

猜你喜欢
4Go 1 2 3 4 下一页