我意识到这是一个非常开放的问题,可以得到各种各样的答案,但这里有。
使用 C#(或 Java,或任何 OO 语言),是否有一般规则规定应将多少变量传递给构造函数?我传递给扩展类的构造函数的变量数量似乎失控了。
为了封装类的数据,我将成员声明为私有,在构造函数中对其进行初始化,并使用公共访问器。
这是一个例子:
public class A
{
private int var1;
private int var2;
private int var3;
//3 variables passed in
public A(int v1, int v2, int v3)
{
var1 = v1;
var2 = v2;
var3 = v3;
}
//Properties (accessors) here
}
public class B : A
{
private int var4;
private int var5;
//5 variables passed in
public B(int v1, int v2, int v3, int v4, int v5)
: base(v1,v2,v3)
{
var4 = v4;
var5 = v5;
}
//Properties (accessors) here
}
public class C : B
{
private int var6;
private int var7;
//7 variables passed in !!!
public C(int v1, int v2, int v3, int v4, int v5, int v6, int v7)
: base(v1,v2,v3,v4,v5)
{
var6 = v6;
var7 = v7;
}
//Properties (accessors) here
}
我的构造函数通常传入不同的对象,而不仅仅是整数。当我开始将 7 个变量传递给子类的构造函数时,我开始质疑我的设计,但我也很难找到一种不同的方法来做到这一点。
这被认为是不好的编程习惯吗?您应该传递给构造函数的变量数量是否有一般限制?