作者回复: 共同进步 :)
作者回复: 你说得对,本来是这样,但《DDD》原书用错了,如果改过来,命名又会混淆。所以课程里是将错就错的策略。用实心菱形确实更符合UML.
作者回复: 这是一个业务人员关注的规则对吧,只要是这样,就放领域层
作者回复: 在我们的例子里,由于项目经理实体(或者考虑项目经理表也行)里有时间段,也有状态,所以完全可以从项目经理实体中得出“当前项目经理”。所以“当前项目经理”那个关联是不必画的。画了以后反而是冗余的。一般而言图里最好不要有冗余。但是,领域专家可能特别关注“当前项目经理”这个概念,所以特别想在图里画出来。这时候,可以画出来,但最好标明,这是一个“派生”出来的关联。
作者回复: 不错
作者回复: 这几个问题比较微妙,可以继续探讨,我尝试回答一下。 1.关于整体部分关系,还要看用户的理解,比如,用户是把项目当成一个单独的单元去处理,还是每次都经由合同再去处理项目 2.可以再加强一下,必须是即时保证的,每时每刻都不变的规则。理论上可以用最终一致性处理的,就不算了。 3.理论上有,可以考虑其他方式保证,聚合不是处理不变规则的唯一方式。
作者回复: 谢谢肯定,咱们共同提高
作者回复: 这节课只讲了聚合的概念,所以您会有这样的疑问。后面两节课应该能回答您的问题,也讲到了乐观锁。
作者回复: 关于仅仅依靠数据库事务不能保证不变规则的问题,后面讲到乐观锁的时候,就清楚了。
作者回复: 是的,后面讲“限定”那节课就会说到。不过,程序应该先守住,数据库的唯一索引是最后的“底线”。