Wie für die Durchführung des Beschlusses matrix in c#

Muss ich eine Entscheidung treffen, basierend auf einer ziemlich großen Gruppe von 8 co-abhängigen Bedingungen.

           | 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

Jede der Bedingungen A bis H true (1) false (0) oder nicht-relevant (-) für die Entscheidung.

Also mit einem gegebenen input der

A B C D E F G H 
1 0 1 0 0 1 1 1

sollte es bewerten zu Decision02.

Die Entscheidungen sind eindeutig, so dass aus jeder gegebenen Menge von input-Bedingungen ist es klar, welche Entscheidung getroffen werden muss (und in einem Fall, der nicht bedeckt durch die matrix, wird eine Ausnahme geworfen werden soll).

Entwickler gearbeitet, bevor Sie mich auf dieses Projekt versucht zu implementieren, das als ein 500-Linie lange verschachtelte wenn-behemoth, die natürlich ist buggy wie die Hölle und ist nicht reparierbar.

So suchte ich für den besten Weg zur Umsetzung einer solchen Logik, und ich bin gekommen, die auf entscheidungstabellen/lookup tables/Tabellen-Steuerelement.

Habe ich eine ganze Menge gefunden-entscheidungstabelle-Generatoren, aber nicht ein einziges Stück code auf, wie die Umsetzung der Entscheidungsprozess 🙁

Ich kann die Entscheidung treffen-Tabelle in der zugrunde liegenden MSSQL-Datenbank oder im code, oder xml, oder was auch immer es nimmt. Ich brauche nur einige Hinweise, wie zu implementieren ist.

Was ist die best practice zur Umsetzung dieser Logik? Wörterbuch? Mehrdimensionales array? Etwas völlig anderes?

  • Nullable boolean ist, wo ich anfangen würde... bool? Kann sein true, false oder null
  • Durch - er bedeutet, dass es nicht wichtig ist, zB es kann 1 oder 0 sein.
Schreibe einen Kommentar