Альтернатива глубоким деревьям if-else? - PullRequest
0 голосов
/ 09 ноября 2019

Недавно я имел удовольствие наблюдать код, который по сути представляет собой километры очень глубоких операторов if-else. Кодекс постоянно обновляется, и отслеживание возможных результатов и их взаимодействия становится все сложнее. Такое чувство, что можно добиться большего успеха.

У меня была идея, возможно, разделить if-дерево на один файл, а результаты - на другой. Возможно, можно даже построить матрицу, где каждая строка будет результатом, а каждый возможный вопрос будет столбцом. Затем можно выполнить некоторые базовые логические операции над такой матрицей, чтобы автоматически определить, не мешает ли добавленная ветвь уже существующим.

Я знаю, что эта идея очень расплывчатая, но я уверен, что кто-то должен был подуматьоб оптимизации деревьев if-else с точки зрения человеческого дизайна и времени редактирования.

Существуют ли какие-либо отраслевые стандарты для эффективной работы с глубокими деревьями if-else? Если да, я был бы признателен за имена и ссылки

В данном конкретном случае я говорю о C #, но мне также интересно, как эта проблема решается в целом

...