Несколько месяцев назад я писал кучу кода, и теперь я добавляю в него материал. Я понял, что написал кучу функций, которые спускаются из класса, который имеет около 2/3rds его абстрактных функций и оставшегося 1/3-го виртуального.Delphi: Поддержание работоспособности Virtual vs Virtual Abstract
Я довольно много надоело видеть:
function descendent.doSomething() : TList;
begin
inherited;
end;
, когда я получил это для базового класса:
function descendent.doSomething() : TList;
begin
result := nil;
end;
и возненавидит заводиться с:
function descendent.doSomething() : TList;
begin
end;
, а затем задаться вопросом, почему что-то не сработало.
Мне нравится использовать абстрактные функции, потому что компилятор сообщит вам, если вы можете получить абстрактную ошибку, потому что вы не реализовали некоторые функции.
Мой вопрос в том, что я по-прежнему относительно новый программист на Delphi, и мне никогда не приходилось ничего обслуживать через 8 лет, стоит ли уделить этому времени prune your code (т.е. удалить функции, которые только что унаследовали в них и изменить функции базового класса от абстрактного до бетона)
Мне просто интересно, является ли мое рефракционирование на самом деле рефракторированием или просто вмешательством. По большей части было бы проще сохранить код как есть и позволить Delphi Autocomplete мои функции с унаследованным и позволить Delphi предупредить меня, когда абстрактная функция не реализована. Единственная причина, по которой я его изменил, - это то, что когда я добавляю новые дочерние классы, я копирую и вставляю огромную секцию интерфейса (которая ничего не делает, кроме получения huger) –