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+)参数的方法的最佳方法是什么?