2008-11-21 106 views
5

DDD的租户之一是不允许您的对象进入无效状态。对我来说,这意味着不应该有一个公共无参数的构造函数,因为在99%的时间里,这将成为一个无效状态的对象。DDD +公共无参数构造函数 - 它们是否存在?

这是继续前进的好方法吗?当你只想快速提升课程时,它就变成了一个庞大的PITA。

回答

2

好问题。我有DDD纳粹朋友谁说无参数构造是魔鬼。我在某种程度上同意这一点,但我也认为这取决于班级的目的。

2

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

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

0

这一切都取决于谁调用构造函数。如果只有你的工厂这样做,那么就没有什么问题了,因为你的工厂方法变成了“域方”的构造器,而真正的构造器就是一个实现细节。

相关问题