5

DDD 的租户之一是不允许您的对象进入无效状态。对我来说,这意味着不应该有一个公共的无参数构造函数,因为这将是一个 99% 的时间处于无效状态的对象。

这是前进的好方法吗?当您只想快速更新课程时,它会变成一个巨大的 PITA。

4

3 回答 3

2

好问题。我有 DDD 纳粹朋友说无参数构造函数是魔鬼。我在一定程度上同意这一点,但我也觉得这取决于课程的目的。

于 2008-11-21T16:30:58.980 回答
2

正如 Kilhoffer 所说,这取决于你想在课堂上做什么。在什么情况下,您希望在不实际初始化属性的情况下新建一个类?如果您希望调用不需要任何数据的实例方法,您可以考虑将这些方法标记为静态或将这些方法移动到单独的类中。您的班级也可能有一个额外的有效状态 - 完全为空。

就个人而言,我相信一切都是适度的。如果 PITA 因子很高,并且您有理由确定不会遇到问题,那么似乎无参数构造函数就可以了。在某些时候,我认为这成为一个意见问题。

于 2008-11-21T19:29:27.933 回答
0

这完全取决于谁调用了构造函数。如果只有您的工厂这样做,那么就没有真正的问题,因为您的工厂方法成为“域端”构造函数,而真正的构造函数是实现细节。

于 2008-12-18T16:39:17.330 回答