Это общий вопрос проектирования, не относящийся ни к какому языку. Я немного разрываюсь между выбором минимального кода или оптимальной организацией.
Я буду использовать мой текущий проект в качестве примера. У меня есть куча вкладок в форме, которые выполняют различные функции. Допустим, вкладка 1 считывает файл с определенной разметкой, вкладка 2 экспортирует файл в определенное место и т. Д. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что мне нужно, чтобы эти вкладки делали что-то немного другое в зависимости от содержимого переменная. Если он содержит 1, мне может понадобиться использовать компоновку A и выполнить некоторую дополнительную конкатенацию, если он содержит 2, мне может понадобиться использовать компоновку B и не делать конкатенацию, но добавить два целочисленных поля и т. Д. Может быть более 10 кодов, которые я будет смотреть.
Является ли более предпочтительным создание отдельного пути для каждого кода на раннем этапе или попытка создать отдельный путь, который разветвляется только тогда, когда это абсолютно необходимо.
Создание индивидуального пути для каждого кода позволило бы с первого взгляда очень легко следовать моему коду, что, в свою очередь, поможет мне позже в будущем при отладке или внесении изменений. Недостатком этого является то, что я буду увеличивать объем кода, написанного путем вызова некоторых из одних и тех же функций в нескольких местах (например, шаги 3, 5 и 9 для каждого отдельного кода могут быть абсолютно одинаковыми.
Создание единственного пути, который будет разветвляться только тогда, когда это потребуется, будет немного сложнее и сложнее для понимания, но я бы создал меньше кода, поместив условные выражения только на уникальные шаги.
Я понимаю, что это может быть индивидуальное решение, но в целом, если бы вам передали ранее созданную программу для работы, что бы вы предпочли?
Редактировать: я нарисовал несколько простых изображений, чтобы помочь выразить это. Коды 1/2/3 являются переменными, а линии под ними представляют пути, по которым они пойдут. Все эти шаги должны выполняться линейно в хронологическом порядке, поэтому существует функция, которая по сути просто вызывает другие функции в правильном порядке.
Разные пути
один путь