【发布时间】:2012-07-15 08:05:56
【问题描述】:
我有一个相对简单的域模型,如图所示。我想在 DDD 定义的域对象中维护这个逻辑。
每个域对象都是一个抽象类,只包含其各自的成员和域逻辑。这些类的具体实现由存储库返回,提供给服务(使用 DI)。
我遇到的麻烦是了解如何处理创建新实体所需的情况。例如领域逻辑规定:
可以将帐户添加到Group(创建Member 实体)。
-
将帐户添加到组时,新的
Member实体的Value属性必须设置为Group中已存在的成员总数。 -
组中的每个其他成员都必须有自己的价值 增加 1。
我可以将其实现为Group 上的Member AddMember(Account account) 方法。但是,此方法需要以某种方式实例化一个新的 Member 以添加到 Group 的 Members 集合中。
由于域对象没有对应用程序中更上层的层的引用,并且域对象本身是抽象的,我不确定如何构建 Member 的新实例。
我考虑过在Group 对象上定义一个abstract protected Member CreateMember() 方法的可能性,具体实现可以实现,但这对我来说似乎很混乱,我担心我可能误解了更基本的东西。
在努力忠于 DDD 原则的同时,我将如何实施此模型?
【问题讨论】: