Я понимаю, что это довольно открытый вопрос и может получить множество ответов, но здесь идет.
Используя 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 переменных в конструктор дочернего класса, но у меня также были проблемы с поиском другого способа сделать это.
Это считается плохой практикой программирования? Есть ли общее ограничение на количество переменных, которые вы должны передать в конструктор?