ddd之商品销售

对于一个在线销售的系统,并不跟踪至每一件商品,也就是说同一种商品都是一样的,系统不会处理某件商品的状态,那么“商品”是不是一个值对象(或“商品描述”)?但商品的价格是会改变的,与值对象的不变性是不是冲突?订单、商品、商品描述、价格、库存数量这些关系怎么处理?
我想这是一个非常普遍的例子,用ddd的时候感觉一些混乱,请大家发表一下高见。

把商品描述 和 商品价格 数量组合成实体,商品描述是值对象。

一般而言,值对象可以从实体中扣出来。很多实体模型字段很多,达到数十个,应该就是没有使用值对象进行分类的原因。

值对象 是不需要持久化的对象吗

谢谢banq。
把商品描述 和 商品价格 数量组合成实体,那这个对象叫什么呢?这个实现思路应该没问题,但感觉有点别扭,可能是这个问题的前提导致的,大多数参考的例子都是货物要有标示进行跟踪的,数量是有库存及出入库提供的。但是我这个问题的前提也应当是客观存在的,且较普遍。
期待您更精彩的回答

2010年01月04日 17:23 "huochaihe"的内容
把商品描述 和 商品价格 数量组合成实体,那这个对象叫什么呢

这个实体是商品货物实体,至于你对货物要进行跟踪,那么基于商品货物实体还有一个实体,可参考DDD书中Cargo案例,Cargo实际就是对货物跟踪的案例,源码下载:
http://www.jdon.com/jdonframework/download.html
这是货物运输我设计的融合四色原型和DDD模型的UML图,供参考:

当然Cargo这个案例和你有些区别,关注重点不太一样,它关注的是货物运输过程监控,你关心的是货物有库存数量及出入库数量。

所以,单货物跟踪这个领域,核心关注点也有所不同,关注不同就导致建模结果不一样。

[该贴被banq于2010-01-05 09:45修改过]

这个实体对象叫商品目录????不是指具体的商品,而是指与商品销售有关的商品的描述信息

2010年01月07日 10:01 "huochaihe"的内容
而是指与商品销售有关的商品的描述信息

本来是一个货物进出系统,你谈到了销售,所以,我们要聚焦核心领域是最重要的。