我一直在阅读Eric Evans的DDD:解决软件中心和上下文地图部分的复杂性,Evans引用了一个使用翻译来集成它们的有界上下文(预订上下文和网络遍历服务)的例子。
如果我理解正确的话,当我们创建一个模型时,我们会将所有东西放入有界的上下文中,为域创建概念边界。我的问题是:
发布于 2014-05-08 16:11:03
发布于 2017-10-22 16:16:42
我觉得这个问题是没有道理的。每个BC是一个域模型存在的边界,边界由UL确定,每个BC都有自己的UL。如果你只创建一个模型,你就不需要翻译了。与其将一个大模型分割成几个小模型,不如加入它们。
我想你理解错了。您根据UL将单个模型拆分为几个BCs,而不是对可用的团队。然后,如果您没有足够的团队来创建BCs,那么一个团队就必须开发一个以上的BC。顺便说一句,相反的情况是不可取的,即BC不应该由一个以上的团队开发。
您不应该引用另一个BC的域对象。BC应该保护它的域模型,这是应用程序层。应用层公开DTO,普通对象,它不应该向外界公开域模型。您所要求的是一个共享内核(一个由其他BC共享的模型)。
模块只是一个java包,用于将相互关联的东西放在一起。因此,您将BC的源代码拆分为模块。按照UL来做,而不是技术方面。例如,每个聚合的模块,而不是实体的模块,存储库的模块等等。
https://stackoverflow.com/questions/23543622
复制相似问题