Il mio capo mi ha dato un progetto con una logica particolare. Devo sviluppare una pagina Web che deve guidare il navigatore in molti casi fino a quando non arriva al prodotto.
Questo è lo schema dei percorsi della navigazione nel sito:
IMPORTANTE!
Nella pagina Prodotti il navigatore può scegliere quale filtro desidera.
- Se A, DEVE passare attraverso la B (e poi la C ovviamente) o la C e raggiungere i prodotti.
- Se B, DEVE passare attraverso la C e raggiungere i prodotti.
- Se C, raggiunge direttamente i prodotti.
Ovviamente se parto dall'intelligenza artificiale sto seguendo il percorso più lungo e quando raggiungo i miei prodotti ho 3 filtri attivi.
Fino ad ora ho sviluppato il seguente codice che funziona bene.
if filter_A
if filter_B
filter_C()
.. else ..
else
filter_C
.. else ..
else
if filter_B
filter_C()
.. else ..
else
filter_C()
.. else ..
Sono qui per chiedere cosa avrebbe fatto un programmatore più esperto in questa situazione. Non ho rispettato il principio DRY, non mi piace e mi piacerebbe conoscere un modo alternativo per sviluppare questo tipo di logica.
Ho pensato di dividere ogni sezione di codice in funzioni, ma è una buona idea in questo caso?
filter_C
, ma le istruzioni condizionali indicano che il flusso di controllo può andare in giro filter_C
. È filter_C
facoltativo?