Ich muss eine Entscheidung basierend auf einem ziemlich großen Satz von 8 co-abhängigen Bedingungen treffen.Wie implementieren Entscheidungsmatrix 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
jeder der Bedingungen A bis H kann wahr sein, (1), falsch (0) oder nicht relevant (-) für die Entscheidung.
Also mit einem gegebenen Eingang von
A B C D E F G H
1 0 1 0 0 1 1 1
sollte es Decision02 bewerten.
Die Entscheidungen sind eindeutig, so dass aus jedem gegebenen Satz von Eingabebedingungen klar ist, welche Entscheidung getroffen werden muss (und in einem Fall, der nicht von der Entscheidungsmatrix abgedeckt wird, wird eine Ausnahme ausgelöst).
Der Entwickler, der vor mir an diesem Projekt gearbeitet hat, versuchte, dies als ein 500-Zeilen langes verschachtelt-wenn Ungetüm zu implementieren, das natürlich buggy ist und nicht wartbar ist.
Also suchte ich nach dem besten Weg, um ein solches Stück Logik zu implementieren, und ich bin auf Entscheidungstabellen/Nachschlagetabellen/Steuertabellen gekommen.
Ich habe eine Menge von Entscheidungstabelle Generatoren gefunden, aber nicht ein einziges Stück Code, wie der Entscheidungsprozess implementieren :(
ich die Entscheidungstabelle in der zugrunde liegenden MSSQL-Datenbank machen, oder in Code oder xml, oder was auch immer es braucht. ich brauche nur ein paar Hinweise, wie dies überhaupt zu implementieren.
Was ist die beste Praxis ist diese Logik zu implementieren? Wörterbuch? mehrdimensionales Array? etwas ganz anderes
?
Nullable boolean ist, wo ich anfangen würde ... bool? Kann richtig falsch oder null sein – Sayse
@Sayse By - er bedeutet, es ist nicht wichtig, zB kann es 1 oder 0 sein. –