领域驱动设计,让程序员心中有码(五)
题图 From unsplash 本系列是由溪源的《领域驱动设计》读书笔记梳理而成,已经是写到第五篇了,为溪源的坚持点赞。 1 从搬砖谈领域对象 有一个古老的故事,大概是这样的。作者问三个建筑工地上的工人他们在干什么?有一个没精打采的说,我在挖洞!而另一一个人却说,我在盖一座房子。还有一个人说,我在建立一座巨大的城市。不同的思维模式决定了不同的发展,十年过后,第一个工人,还是在挖洞,而第二个则成为了工头。第三个最终却成为了大设计师。 在软件开发领域,往往会使用搬砖这个词来形容我们所开发的每个功能模块,实际上也确实如此,如果把我们需要完成的每个项目,比作一座高楼大厦,那么在项目中所完成的各种模块,也确实是我们在计算机世界中利用砖块设计出来的精美建筑构建。而从领域驱动的角度来说,可以把关系,类比为建筑工程图纸中使用的各种辅助线,也可以把领域驱动中所涉及的各个对象,类比成砖块,这些砖块,大概有两种:一种是实体(Entity),一种是值对象(Value Object),而使用这些对象的工具,则成为服务(Service),完成的各个建筑构建,被成为包或者模块(Module). 2 关联关系 在介绍领域驱动设计的第三篇文章《 领域驱动设计,让程序员心中有码(三) 》中,笔者提到了UML中常用的几种关系,而关联关系是一种最为常见的关系。在软件设计过程中,无所不在的关联