Java中构造函数中的长参数列表

可能重复:
重构具有太多(6+)参数的方法的最佳方法是什么?

如果构造函数有一个很长的参数列表,我们应该考虑它的坏样式并重构它吗? 如果有,怎么样?

它可能是一组合适的参数,但很多时候我的答案都是肯定的。 将参数分解为逻辑子分组(如果它们存在),即不是从许多不同的部分创建Car,将某些部分分组为Engine对象,将某些部分分组为Chasis等。

或者,如果其中一些参数是可选的,请使用构建器模式,以便在必要时仅包含它们。

但最终,做对你和你的领域最有意义的事情。

考虑使用Builder 。 而不是有一些构造函数,其中一些参数可以为null

 Foo foo = new Foo(name, id, description, path, bar); 

而不是伸缩构造函数 – 即为每个参数组合创建一个构造函数,您可以:

 Foo foo = new FooBuilder().setName(name).setPath(path).build(); 

是的你应该。 请参阅重构具有太多(6+)参数的方法的最佳方法是什么?