Мій начальник дав мені проект з певною логікою. Мені потрібно розробити веб-сторінку, яка повинна вести навігатор через багато випадків, поки він / вона не надійде до продукту.
Це схема шляху навігації на сайті:
ВАЖЛИВО!
На сторінці Продукти навігатор може вибрати, який фільтр він хоче.
- Якщо A, він / вона ПОВИНЕН пройти через B (а потім C звичайно) або C і дістатися до продуктів.
- Якщо B, він / вона ОБОВ'ЯЗКОВО пройде через C та дістається до продуктів.
- Якщо C, він / вона досягає безпосередньо продуктів.
Звичайно, якщо я починаю з AI, я слідую за найдовшим шляхом, і коли я дістаюсь до своїх продуктів, у мене є 3 активні фільтри.
До цих пір я розробив наступний код, який працює чудово.
if filter_A
if filter_B
filter_C()
.. else ..
else
filter_C
.. else ..
else
if filter_B
filter_C()
.. else ..
else
filter_C()
.. else ..
Я тут, щоб запитати, що зробив би більш досвідчений програміст у цій ситуації. Я не дотримувався принципу DRY, мені це не подобається, і я хотів би знати альтернативний спосіб розвитку такої логіки.
Я думав про розділення кожного розділу коду за функціями, але чи це в цьому випадку гарна ідея?
filter_C
, але умовні висловлювання вказують на те, що потік управління може обійтись filter_C
. Не filter_C
обов’язково?