DDD我可以使用抽象工厂来创建域对象

时间:2014-09-23 08:10:32

标签: domain-driven-design factory domain-model abstract-factory

我有一个域模型,其中包含Abstract EntitiesConcrete Entitiesextensibility来添加Base app service

我可以添加一些Abstract Factory,可以接受Abstract Repository和{{1}}来应用具体实体之间的共享逻辑。

问题:

1。我是否真的在路上?

2. 如果是,我应该如何将工厂注入服务?

1 个答案:

答案 0 :(得分:1)

如果无法立即解析具体对象,您可以将工厂注入实体。当他们的产品只能在以后实例化时,工厂很有用,例如因为它预期的数据还没有准备好。

所以是的,您可以将具体工厂注入实体,而依赖注入是实现这一目标的正确方法。

在相关的说明中,有一个非常具体的场景,它也会影响DDD。这可能不是您的实际情况,但值得一提。可能会发生决定哪个具体产品是域逻辑的一部分。我的意思是,工厂的选择不是固定的,而是取决于域逻辑方面的具体情况。

在这种情况下,我有时会选择将部分域逻辑添加到具体的工厂实现中。结果是抽象工厂以与以前相同的方式定义,但具体工厂成为域模型的一部分。这有点不寻常,需要仔细完成。在Switchable Factory MethodsDomain Logic in Factories中分析了这种方法。