Ho bisogno di prendere una decisione sulla base di un insieme piuttosto ampio di 8 condizioni dipendenti.Come implementare la matrice delle decisioni in C#
| A | B | C | D | E | F | G | H
-----------+---+---+---+---+---+---+---+---
Decision01 | 0 | 1 | - | 1 | 0 | 1 | - | 1
Decision02 | 1 | 0 | - | 0 | 0 | - | 1 | -
...
Decision11 | 1 | 0 | 1 | 1 | 1 | - | 1 | 1
Ognuna delle condizioni da A ad H può essere vero (1), false (0) o non rilevante (-) per la decisione.
Quindi, con una data di ingresso di
A B C D E F G H
1 0 1 0 0 1 1 1
si dovrebbe valutare a Decision02.
Le decisioni sono inequivocabili, quindi da una serie di condizioni di input è chiaro quale decisione deve essere presa (e in un caso che non è coperto dalla matrice decisionale, verrà lanciata un'eccezione).
Lo sviluppatore che ha lavorato prima di me in questo progetto ha cercato di implementarlo come un behemoth nidificato da 500 righe, che ovviamente è bacato e non è gestibile.
Quindi ho cercato il modo migliore per implementare una tale logica e mi sono imbattuto in tabelle decisionali/tabelle di consultazione/tabelle di controllo.
Ho trovato un sacco di generatori di tabella di decisione, ma non un singolo pezzo di codice su come attuare il processo decisionale :(
posso fare la tabella di decisione nel database MSSQL sottostante, o in codice, o XML, o qualsiasi cosa. ho solo bisogno di alcune indicazioni su come implementare questo a tutti.
Qual è la migliore pratica per implementare questa logica? dizionario? Array multidimensionale? Qualcosa di completamente diverso?
Nullable booleano è dove vorrei iniziare ... bool? Può essere true false o null – Sayse
@Sayse By - indica che non è importante, ad esempio può essere 1 o 0. –