0

我一直在考虑这个问题,并且看到了不同的例子。通常我会以向上的方式链接构造函数。因此,如果我有 4 个不同的构造函数,从一个默认构造函数开始,谁调用我们需要传入一个参数的构造函数,谁调用我们需要传入 2 个参数的构造函数等等,所以我们有可用的对象,其中所有字段都保存数据。

是否有不同的方法来链接构造函数,因为我想不出另一种情况?为什么我想要我的构造函数,我需要 3 个参数来传递,调用我的构造函数,我只需要传递 2 个参数?

4

2 回答 2

0

Builder 模式适用于这种情况。粗略的演示可能如下所示:

Dog dog = new DogBuilder().setHeight(10).setWeight(40).setColor(Color.BROWN).build();

每个 set 方法都返回对DogBuilder具有该属性集的实例的引用。调用.build()调用设置了所有值的私有/包私有构造函数。

这是一篇很好的参考文章: https ://dzone.com/articles/design-patterns-the-builder-pattern

于 2019-07-23T11:16:31.137 回答
0

我认为“常识”的最佳实践是:

  • 尽量减少你的类提供的构造函数的数量(例如通过依赖Builder模式)
  • 是的,n arg构造函数调用n+1构造函数(并提供默认参数)的“向上链接”可能是更常见(也更有用)的样式。

但正如最后一句话所表明的那样:在某种程度上,这是关于“个人”风格的。或者任何适用的“风格”。当您的团队习惯于以不同的方式做事时,并且您有数百个遵循这种“特殊风格”的现有课程,那么您允许“团队内部”偏好来指导您的行动。

于 2019-07-23T11:17:02.353 回答