重温了一下DDD,感觉很多都清晰很多了。
我发现自己是弄绕了领域,业务描述,需求。
若果客观是一个世界的话,那么在世界画一个闭区间,这个区间就是领域——内容是客观的,但是是主观地加上了边界。
需求,是用户描述这个闭区间的意图。
业务描述,是用户对这个闭区间的一种不一定全面的描述。
客观主体与领域的关系,这里的客观主体若果是闭区间的内容的话,那么可以说客观主体==领域。这里可能有点不同于jdon007的理解,我并不理解为共性的,我理解为“the”,即特别的。若果也以电影为例的话,那么“这部电影”才是领域,“其他电影”就等同于其他领域,即使他们有相同的地方,或者完全相同,也只是“领域模型”可以复用而已,而不是领域相同。也就是jdon007的例子中全部加上“the”,就是我的理解了。
那么“领域模型”到底和“领域”是什么关系呢?
[img index=1]
我个人是把“领域模型”作为“领域”的一种描述,其地位与用户解析业务一样。相当于,用户用中文告诉我们,我们再用英文翻译而已。
[img index=2]
用户发现自己之前的描述出现纰漏,那么也就是用户自己的描述改变而已,领域并没有改变,但是注意这种业务增加是不改变原领域的。若果是增加业务,那么是属于领域边界扩张。若果当领域改变的时候,也就是不再是这些演员导演等人了,或者不是拍这步戏了,当然了,是否改变是需要分析的。
业务变更了,领域是否会发生变化?这不能确定,这要看这个业务变更是因为什么,若果因为用户描述纰漏而造成的,则领域没有改变,若果是用户所在的公司,业务扩展,则是一种领域改变。
领域的圈子是用户自己给的,他根据自己的圈子作出描述,领域建模人员则是根据对方的描述,自己的知识和实地考察,尽量获取出用户自己本来想要表达的圈子和圈子中的内容。若果用户本身的想要表达的圈子变了,那么领域就变了,(论坛变大型SNS,明显是圈子上的变化),至于到底是扩展,还是完全不同,就另外再说吧(其实扩展就是与原来不同嘛,AB->ABC,AB!=ABC)。
我们领域建模人员不但要找出用户所要表达的圈子,还需要了解圈子内的内容。说到底,其实是领域当中既含有主观的东西,也含有客观的东西。
[该贴被SpeedVan于2010-12-17 13:37修改过]