All C наступившим всех программеров и прочих рубордовцев!
Erazer Если стало тяжко держать в голове всю структуру вызовов, значит необходимо изменить подход в программировании
Конечно, можно написать сотни процедур и поместить их все в одном модуле, но это не программирование - это ремесленничество на любительском уровне, имхо. Даже если кажется, что "программка то простая, чего там мудрить", нужно помнить, что аппетит приходит во время еды, возможно, вам к ней еще не раз придется возвратиться, а скорее всего - еще и баги искать. В таком коде какому другому программеру разобраться - это ж сколько человекочасов потратить надо. А грамотный код и почитать приятно, и поддерживать не трудно, да и багов в нем - поверьте, гораздо меньше случается
Ну к примеру.
Есть условие, в зависимости от которого нам в главной процедуре надо четыре разных процедуры вызвать. И у каждой свои параметры, как оказалось. Сначала то думали, что одинаковые параметры, а потом выяснилось что... Ну и так далее.
Вот и начинаем "ветвления"
if условие1 then ПолучаемПараметры1 и вызываем процедуру 1;
if условие2 then ПолучаемПараметры2 и вызываем процедуру 2;
if условие3 или условие4 then begin
ПолучаемПараметры3
if условие3 then вызываем процедуру 3 else
ПолучаемДополнительныйПараметр4 и вызываем процедуру 4;
Такой бардак в коде - сплошь и рядом. Страшно отлаживать что то подобное, особенно когда процедуры имеют невразумительные названия, типа "MyProc12"
А что стоит сделать вот так:
Реализуешь четыре объекта, и ссылку на базовый класс
Код: TMyObject1 = class
procedure Initialize; virtual;
procedure Run; virtual;
end;
TMyObject2 = class(TMyObject1)
public
procedure Initialize; override;
procedure Run; override;
end;
TMyObject3 = class(TMyObject1)
procedure Initialize; override;
procedure Run; override;
end;
TMyObject4 = class(TMyObject1)
procedure Initialize; override;
procedure Run; override;
end;
TMyClass = class of TMyObject1;