代码之家  ›  专栏  ›  技术社区  ›  Kyle West

DDD+公共无参数构造函数-它们应该存在吗?

  •  5
  • Kyle West  · 技术社区  · 16 年前

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

    这是前进的好方法吗?当你只想很快地上一门课时,它就变成了一个巨大的皮塔。

    3 回复  |  直到 16 年前
        1
  •  2
  •   Kilhoffer Guffa    16 年前

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

        2
  •  2
  •   Pedro    16 年前

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

    我个人认为一切都要适度。如果pita因子很高,并且您合理地确定不会遇到问题,那么无参数构造器就可以了。在某种程度上,我认为这是一个意见问题。

        3
  •  0
  •   Wouter Lievens    16 年前

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