c# – 工厂模式这应该存在于DDD中?

前端之家收集整理的这篇文章主要介绍了c# – 工厂模式这应该存在于DDD中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经讨论了一段时间了,但仍然没有得出结论.
虽然我看到大多数示例都在应用程序层中有工厂代码,但我倾向于认为它应该在域层中.
原因:
我有时会在我的工厂进行初始验证,我希望所有对象的创建都能通过.
我希望此代码可用于我的对象的所有实例化.
有时,操作需要感觉不自然的参数信息传递给构造函数.
还有一些不那么重要的原因.

有没有理由说这是一种不好的做法?
这会破坏其他模式吗?

解决方法

1这样做.可访问性是一个很好的理由,我会保持创建代码至少接近域模型层.否则,域模型的用户将在查找受限制的访问构造函数时特别混淆如何实例化它.实际上,将它分开的一个合理的理由是你有不同的有效方法来创建相同的东西,例如通常在使用抽象工厂时就是这种情况.

如果我不得不分开它,我会把它放在例如一个包(在Java的情况下)至少与域模型的相同级别并且它总是与它一起发送,例如

upper
  --> domain
  --> domain_factory

猜你在找的C#相关文章