сабж — моя идея — давно её толкаю, — по моему это единственный критерий оценки хорошего проектирования
всё бы ничего и все согласны но обычно споры начинаются вокруг:
class A
{
public int a;
public void Clear1()
{
foreach(FieldInfo pi in GetType().GetFields())
{
pi.SetValue(this, 0);
}
}
public virtual void Clear2()
{
a = 0;
}
}
class AB : A
{
public int b;
public override void Clear2()
{
base.Clear2();
b = 0;
}
}
class AC : A
{
public int c;
public override void Clear2()
{
base.Clear2();
c = 0;
}
}
я считаю что код Clear1() решает задачу раз и навсегда, решает её хорошо и правильно
но есть люди которые утверждают что
а) это неочевидный код
б) хакерство и подростковый максимализм
в) рефлекшн тормозит и т.д.
и соответственно предлагают Clear2()
а вы как думаете ?