Mi jefe me dio un proyecto con una lógica particular. Tengo que desarrollar una página web que tenga que guiar al navegador a través de muchos casos hasta que llegue al producto.
Este es el esquema de ruta de navegación en el sitio:
¡IMPORTANTE!
En la página Productos, el navegador puede elegir qué filtro quiere.
- Si A, él / ella DEBE pasar por B (y luego C, por supuesto) o C y llegar a los productos.
- Si B, él / ella DEBE pasar por la C y alcanzar los productos.
- Si C, él / ella llega directamente a los productos.
Por supuesto, si empiezo desde AI sigo el camino más largo y cuando llego a mis productos tengo 3 filtros activos.
Hasta ahora desarrollé el siguiente código que funciona bien.
if filter_A
if filter_B
filter_C()
.. else ..
else
filter_C
.. else ..
else
if filter_B
filter_C()
.. else ..
else
filter_C()
.. else ..
Estoy aquí para preguntar qué habría hecho un programador más experto en esta situación. No respeté el principio DRY, no me gusta y me gustaría conocer una forma alternativa de desarrollar este tipo de lógica.
Pensé en dividir cada sección de código en funciones, pero ¿es una buena idea en este caso?
filter_C
, pero las declaraciones condicionales indican que el flujo de control puede dar la vuelta filter_C
. Es filter_C
opcional?