Мне нужно принять решение, основанное на довольно большом наборе из 8 ко-зависимых условий.
| 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
Каждое из условий от А до Н может быть истинным (1), ложным (0) или нерегулярным (-) для решения.
Итак, с заданным входом
A B C D E F G H
1 0 1 0 0 1 1 1
он должен оцениваться в Decision02.
Решения недвусмысленны, поэтому из любого заданного набора условий ввода ясно, какое решение должно быть принято (и в случае, когда эта матрица не охвачена, возникает исключение).
Разработчик, который работал до меня в этом проекте, пытался реализовать это как 500-строчный длинный вложенный, если бегемот, который, конечно, глючит, и не поддерживается.
Итак, я искал лучший способ реализовать такую логику, и я столкнулся с таблицами решений/таблицами поиска/таблицами управления.
Я нашел множество генераторов таблиц решений, но не один фрагмент кода о том, как реализовать процесс принятия решений: (
Я могу составить таблицу решений в базе данных MSSQL, или в коде, или в xml, или что-то еще. Мне просто нужны некоторые указатели на то, как реализовать это вообще.
Какая наилучшая практика для реализации этой логики? Словарь? Многомерный массив? Что-то совсем другое?