我有一个域模型,其中包含Abstract Entities
个Concrete Entities
个extensibility
来添加Base app service
。
我可以添加一些Abstract Factory
,可以接受Abstract Repository
和{{1}}来应用具体实体之间的共享逻辑。
问题:
1。我是否真的在路上?
2. 如果是,我应该如何将工厂注入服务?
答案 0 :(得分:1)
如果无法立即解析具体对象,您可以将工厂注入实体。当他们的产品只能在以后实例化时,工厂很有用,例如因为它预期的数据还没有准备好。
所以是的,您可以将具体工厂注入实体,而依赖注入是实现这一目标的正确方法。
在相关的说明中,有一个非常具体的场景,它也会影响DDD。这可能不是您的实际情况,但值得一提。可能会发生决定哪个具体产品是域逻辑的一部分。我的意思是,工厂的选择不是固定的,而是取决于域逻辑方面的具体情况。
在这种情况下,我有时会选择将部分域逻辑添加到具体的工厂实现中。结果是抽象工厂以与以前相同的方式定义,但具体工厂成为域模型的一部分。这有点不寻常,需要仔细完成。在Switchable Factory Methods和Domain Logic in Factories中分析了这种方法。