domain-driven-design - DDD - 如何实现工厂

标签 domain-driven-design factories

很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。如需帮助澄清这个问题以便重新打开它,visit the help center .




9年前关闭。




我想知道如何在领域驱动设计中实现工厂。 (例子)

工厂的接口(interface)和实现应该放在哪里?
我是否需要为工厂创建的域对象创建接口(interface)?
我是否需要为存储库、服务等创建工厂?

我正在使用依赖注入(inject)容器如何将它们与工厂放在一起?

谢谢。

最佳答案

工厂应该是简单的类,通常是静态的。它们也可以作为它们创建的实体或值对象的静态方法来实现。工厂应该直接创建域对象并且只创建域对象。此外,工厂不应与依赖注入(inject)绑定(bind),因为域对象不应将依赖注入(inject)其中。

域对象不应该实现接口(interface)——这是一个不必要的抽象。

另一方面,服务和存储库实现确实有依赖关系,应该由 DI 容器创建。

关于domain-driven-design - DDD - 如何实现工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15299970/

相关文章:

javascript - Angular 工厂: how do I return a function that operates on $scope?

ruby-on-rails - FactoryGirl initialize_with 多个参数

php - 在 Laravel 中使用 PHP Faker 在使用工厂播种数据库时生成 "unique with"条目

oop - 在DDD架构中,唯一ID生成属于哪里?

asp.net - 领域驱动设计——数据库事务管理

javascript - 如何将 KendoUI 数据源 OData 参数发送到抽象的 RESTful AngularJS 数据工厂?

php - 域对象工厂是什么样的?

architecture - DDD - 来自其他有界上下文的验证引用 ID

repository - Entity Framework 无法获取实体并给出 "Object' s Key Does Not Match..”错误

repository - 域驱动的设计,存储库和混合实体