Я понимаю, что это довольно открытый вопрос и может получить множество ответов, но здесь идет.
Используя С# (или Java или любой язык OO), существует ли общее правило, указывающее, сколько переменных должно быть передано в конструктор? Количество переменных, которые я передаю в конструктор расширенных классов, похоже, выходит из-под контроля.
Чтобы инкапсулировать данные класса, я объявляю члены private, инициализируя их в своем конструкторе и использую общедоступные accessors.
Вот пример:
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
}
Мои конструкторы обычно передают разные объекты, а не только ints. Я начал подвергать сомнению мой дизайн, когда я начал передавать в 7 переменных конструктору дочернего класса, но у меня также возникли проблемы с поиском другого способа сделать это.
Является ли это плохой практикой программирования? Есть ли общий предел количества переменных, которые вы должны передать в конструктор?