19、值对象(中):值对象有什么好处

你好,我是钟敬。 上节课我们讲了值对象的基本概念和编程方法。实体和值对象的差别大体可以总结成这句话:实体是一个“东西”,而值对象是一个“值”,往往用来描述一个实体的属性。 学完前面的内容,不知道你会不会有这样的疑问:我们花了这么大的功夫来区分实体和值...

手把手教你落地DDD

20、值对象(下):值对象和实体的本质区别是什么

你好,我是钟敬。 在前两节课,我们学习了值对象的基本概念、编程实现以及值对象的优点,基本上已经可以开始在实践中应用了。现在我们已经知道,实体是靠独立于其他属性的标识来确定同一性的,而值对象以本身的值来确定同一性,没有独立于其他属性的标识;理论上,实体...

手把手教你落地DDD

21、用“限定”建模:怎样简化一对多关联

你好,我是钟敬。 在前几节课我们讲完了值对象。今天咱们学习另外一种建模技术——限定。 在《DDD》原书里讲关联的时候,专门强调了这个方法,因为限定可以起到丰富模型语义和简化关联的作用。 然而我发现,即便是一些UML老手,会用这个技术的也不多。这个技术...

手把手教你落地DDD

22、泛化建模(上):领域知识更抽象怎么办

你好,我是钟敬。 上节课,我们学习了“限定”技术。利用这个技术可以丰富模型的语义并简化关联。今天,我们要挑战领域建模中的另一个话题——泛化。 泛化是领域建模技能由初级水平迈向中、高级水平的门槛。也就是说,如果不懂泛化,那么你的领域建模水平就始终停留在...

手把手教你落地DDD

23、泛化建模(中):可以不用泛化吗

你好,我是钟敬。 上节课,我们学习了“泛化”,并用这个技术完成了“在子项目上报工时”的需求。如果你是第一次学的话,可能会觉得理解起来有一些难度吧。 今天,我们继续这个建模过程,首先考虑“在子项目上报工时”这个需求的更多细节,增加更多的灵活性。 然后,...

手把手教你落地DDD

24、泛化建模(下):怎样权衡是否采用泛化

你好,我是钟敬。 前两节课,我们重点结合报工时的需求来讨论了关于泛化的问题。在[第22课],我们为工时项建模的时候使用了泛化;而[第23课],在为客户项目和内部项目建模时,尽管可以泛化,最终却没有采用泛化。 你可能会有个困惑:前两节课的例子里,是否采...

手把手教你落地DDD