如何处理DDD中的跨域概念?



假设我有一个类,它提供了不同领域使用的计算或概念。因为域名都有自己的"泡沫"。不知道外部是什么,我就必须在每个域中复制这个类,对吧?或者是否存在效用领域?我希望避免在几个域中维护同一个类。

我来举个例子:假设我发明了一个新的时间概念。一小时不再是60分钟,而是大约70分钟。现在一天大约持续22个小时,而且日期看起来也不一样了。现在我想构建一个包含以下子域的存储系统:订单、合同、交付和发票。每个子域现在都使用这个新的时间概念。每当需要一个时间单位时,就应该使用新的时间概念。这可能发生在所有子域。

如果这些元素(类,函数等)在几个子域之间共享,则可以构建共享域。如果这些元素是命名共享域的一部分,那么它就不只是"共享"了。

例如,您可能必须管理像Car这样的实体摩托车,总线和. 经过一些分析,所有这些实体都有一些共同的元素。例如,它们都有引擎轮胎(不止一个)和IdSign。您可以在一个公共实体Vehicle中共享所有这些元素。. 所有实体都来源于此,并扩展/改进其基本功能。通过这种方式,您可以构建由其他域扩展的共享域。

另一方面,你可以让这个函数与域的实体完全脱节。我的意思是,你可以有一个函数"找到两个(本地)小时之间的分钟数",与车辆完全断开连接它是子实体。这类元素应该留在实用程序包中,它们有自己的生命,并在您将要设计的域内使用。

但是,如果你要围绕时钟设计一些东西

这意味着,你的问题的最佳解决方案完全取决于你的领域和你打算设计它的方式。

最新更新