首先ddd的战术这个讲法是不太好的。ddd书中说的是战术性建模(tactical modeling)。其意思是在战术层面的建模,那当然有战略层面的建模啦。以后会专门讲。
domain object是ddd区别于其他建模/设计方法的一个部分。他定义了概念帮助我们去建立model。如果没有接触过ddd,一开始会觉得有点莫名其妙,为什么要定这种规矩,这种规则?
Entity,value object, Aggregate
entity
entity是一类可识别的可追踪的对象。
说简单了,它必须有identifier,再简单点id(可识别,可被追踪)。
另外它是有可变对象,mutable。但即使状态变化了之后,entity还是原来的entity。(好绕口)
现实一点的例子。一个人叫“王帝”,他改名交了“王皇”,名字虽然变了,但还是同一人。当然现实世界里我们很难去寻找一个identifier(识别码),如何定义一个不变的identifier会是个哲学问题,但编程时就简单多了,直接搞个id就就行。