Immagina di dover gestire i prodotti. I prodotti hanno caratteristiche, le funzionalità possono avere un'opzione di immissione gratuita o un insieme di opzioni limitate, non tutte le probabilità saranno disponibili:
options01/features01 * options02/features02 * ... options0n/features0n
quindi ho un set di regole dove attivo condizione specifica su una caratteristica: blacklist / whitelist un set o una gamma di opzioni per un'altra funzione
(ad esempio, sulla funzione di selezioneUn set completo di opzioni per FeatureB sarà disabilitato / abilitato di conseguenza alle regole FeatureA- > FeatureB)
L'approccio più semplice sarebbe quello di determinare una priorità per le regole basate sulle caratteristiche, quindi se ho
FeatureA, FeatureB and FeatureC ,
rulesA->rulesB->rulesC
rulesB->rulesC
(but not: rulesB->rulesA , rulesC->rulesB, RulesC->rulesA)
Ma cosa succede se non ho un elenco di regole di priorità, quindi in pratica qualsiasi modifica a qualsiasi opzione di funzionalità influirà su altre funzionalità.
Esiste un Algoritmo per gestire questo problema? quale sarebbe una struttura dati pratica per memorizzare informazioni sulle opzioni di funzionalità e le regole di quotazione?