DDD中具有相同行为的领域模型

本文关键字:领域模型 DDD | 更新日期: 2023-09-27 17:49:49

我是DDD体系结构模式的新手。我正在根据所捕获的用例设计领域中的行为。我没有把逻辑放在行为中,只是创建签名。

我的问题是,当2个领域模型共享或具有相同的行为时,什么是最好的方法?

示例:我有一个TimeEntry域和一个TimeApprover域,它们都具有相同的行为AddCommentToTime()。它们都具有相同的行为,并最终持久化到相同的逻辑表。

在其他体系结构中AddCommentToTime()会被推送到某种类型的基类或抽象类中,以便TimeEntry和TimeApprover可以共享相同的代码。

但是在纯DDD中应该没有共享,这些域应该有单独的行为,而不是从任何类型的基类或抽象类继承/实现?它们基本上应该是相互独立的。

我理解正确吗?

编辑答案

@Matthew的回答帮助我重新审视了我真正想要完成的事情。

行为AddCommentToTime()实际上属于一个完全不同的域中。在重新审视用例和我们正在实现的数据设计之后,我意识到AddCommentToTime()实际上应该是AddcommentToAssignment()。添加一个分配域。此分配域将知道如何添加注释。

DDD中具有相同行为的领域模型

首先要注意的是DDD不是一个体系结构模式,尽管您可以使用符合DDD方法的体系结构。

对于不同领域(有界上下文?)中的两个类,如果它是一个微不足道的代码,我只会复制它,否则您可以将它放入共享内核中,并从它继承。或者,您可以使用策略模式在运行时而不是编译时执行此操作,并再次将策略实现放入内核中。