Mój szef dał mi projekt ze szczególną logiką. Muszę opracować stronę internetową, która musi prowadzić nawigatora przez wiele przypadków, aż dotrze on do produktu.
Oto schemat ścieżki nawigacji na stronie:
WAŻNY!
Na stronie Produkty nawigator może wybrać filtr, który chce.
- Jeśli A, MUSI przejść przez B (a następnie oczywiście C) lub C i dotrzeć do produktów.
- Jeśli B, MUSI przejść przez C i dotrzeć do produktów.
- Jeśli C, on / ona dociera bezpośrednio do produktów.
Oczywiście, jeśli zacznę od sztucznej inteligencji, podążę najdłuższą ścieżką, a kiedy dotrę do moich produktów, mam 3 aktywne filtry.
Do tej pory opracowałem następujący kod, który działa dobrze.
if filter_A
if filter_B
filter_C()
.. else ..
else
filter_C
.. else ..
else
if filter_B
filter_C()
.. else ..
else
filter_C()
.. else ..
Jestem tutaj, aby zapytać, co zrobiłby bardziej doświadczony programista w tej sytuacji. Nie przestrzegałem zasady DRY, nie podoba mi się to i chciałbym poznać alternatywny sposób na rozwinięcie tego rodzaju logiki.
Myślałem o podzieleniu każdej sekcji kodu na funkcje, ale czy w tym przypadku to dobry pomysł?
filter_C
, ale instrukcje warunkowe wskazują, że przepływ sterowania może się zmieniać filter_C
. Jest filter_C
opcjonalny?