先声明一点,我只是一只很菜的菜鸟,甚至都没怎么看DDD,所以我无法保证自己的观点的正确性。
看了楼主和yananay的争论,特别是楼主的观点我觉得怪怪的。
对于楼主的言论,我不知道是不是可以这样去理解,我们在日常生活中的各项交易都会使用人民币,这个时候人民币对象应该算是值对象吧,不管是一百张的一块、十张的十块还是一张的一百,它们都是等值的,都可以去衡量商品的价格。
而你说的值对象全局查询,你仔细想想,值对象有必要进行全局查询吗?当然,也许你会问人民币不也有唯一编号,也许客户想知道编码为:xxxx的人民币现在谁手中?但你想想看,这个时候,人民币还是值对象吗?它已经转换了角色。在这个场景中,它不在担当衡量商品价格的工具,对于客户而言,它只是一件物品,而不是钱!
不知道这样说你能不能理解我想表达的意思。
另外,所谓的仓储,在我看来就相当于现实生活中仓库。我们还是以人民币来举例吧。比方说我有一百万的财产,我不可能把这些钱都带在身上,所以我选择把他存储在银行中,这个时候银行就算是一个仓储。它只是让我来储存这些钱的,某次我要用钱了,我去银行取钱,那么你认为我还会计较我取出来的钱是不是我之前存入的那些呢?只要取出来的钱是等值的就可以了,当然如果你愿意,你也可以立马在银行兑换成等值的美元、日元或者英镑不是吗?当然前提是银行提供这种业务!
其实所谓的面向对象真的很简单,只要你站在一个普通人的角度去看待问题,很容易就解决了。
楼主的问题其实根源还是在于你是一个程序员的角度去看待事物,或者说还没有脱离数据库的影响。
呵呵~我是一只菜鸟,很菜很菜的菜鸟,一只想要成长为大鸟的菜鸟!呵呵~
[该贴被snow0613于2009-04-05 15:57修改过]
[该贴被snow0613于2009-04-05 15:58修改过]