Rifat писал(а):
Хотелось бы, чтобы комментаторы немного поясняли свое мнение, чем именно они возмущены? Тем, что для разных типов используется перегруженная функция с одним и тем же именем, или чем-то другим.
Лично я возмущён тем, что ваши сотрудники криво и небезопасно преизобретают виртуальные методы вместо того, чтобы разбить функционал по смысловым уровням между классами. В этом и должен бы заключаться рефакторинг как структурное преобразование программы, будь он автоматизированный или пистолетизированный. Разбиение на части, вынос общих множителей (факторов) за скобки.
Разве не в том суть виртуальных методов, чтобы сделать IF по типу параметра и вызвать соответствующий этому типу код? И это со всяческими гарантиями корректности, проверками на этапе компиляции и т.п.
Цитата:
Был код следующего вида:
void Func(BaseType t);
{
if (t is ChildType) { Func((ChildType)t); }
}
А должен был быть просто: t.Func();