我的问题涉及 java 中的构造函数。我了解到我们应该尽量减少方法的参数数量,包括构造函数。因此,如果我有一个需要创建大量输入参数的类,我该如何最好地解决这个问题。我应该
A) 将它们全部包含在构造函数方法签名中:
例子:
public MyClass(SomeThing A, Vector v, OtherThing B, int number.. etc.){
// construct
}
..
MyClass c= new MyClass(..);
c.doSomethingWithAllYouGot();
B) 我可以只构造很少的东西然后要求对象用户在调用特定方法之前添加东西吗
public MyClass(SomeThing A){
// construct
}
..
MyClass c=new MyClass(A);
c.attributeVector(v);
c.connectTo(B);
c.setNumber(n);
// etc.
c.doSomethingWithAllYouGot();
第二个变体看起来更优雅和干净,但如果类使用不当,则允许更多错误。
或者如果输入参数太多,类的设计是否存在问题?
最佳答案
如果真的有那么多参数,可能是你的类试图同时处理太多的事情。以此为暗示,它可以分解成更小的类。
或者,您可以将构造函数包设为私有(private),并使用 builder在同一个包中实例化它。
关于java - 需要很多输入参数的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28556913/