我正在为我的域对象构建工厂,因为它们的构造函数变得不整洁。我的问题是,我应该将约束测试转移到工厂,还是应该将它们留在域对象构造函数中?
测试大多只是检查在实例化对象之前是否提供了所需的参数,或者相关对象是否具有特定值。如果测试失败,他们通常只是抛出一个异常。
一方面,我认为逻辑属于领域对象,因为它是对象的重要组成部分。例如,没有名字的宠物就是无效的。
另一方面,我要迁移到工厂的几乎所有东西都是域对象的重要组成部分。(这是域对象工厂的结果,对吧?它破坏了域对象的封装?)
将它留在域中会更安全,但它不整洁。我的代码如果在工厂里会更易读,但如果有人不小心使用了new
操作符而不是工厂,我就有麻烦了……