加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:20:03 所属栏目:百科 来源:网络整理
导读:我已经讨论了一段时间了,但仍然没有得出结论. 虽然我看到大多数示例都在应用程序层中有工厂代码,但我倾向于认为它应该在域层中. 原因: 我有时会在我的工厂进行初始验证,我希望所有对象的创建都能通过. 我希望此代码可用于我的对象的所有实例化. 有时,操作需
我已经讨论了一段时间了,但仍然没有得出结论.
虽然我看到大多数示例都在应用程序层中有工厂代码,但我倾向于认为它应该在域层中.
原因:
我有时会在我的工厂进行初始验证,我希望所有对象的创建都能通过.
我希望此代码可用于我的对象的所有实例化.
有时,操作需要感觉不自然的参数信息传递给构造函数.
还有一些不那么重要的原因.

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

解决方法

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

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

upper
  --> domain
  --> domain_factory

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读