Существуют очень старые «формализмы» для попытки инкапсулировать чрезвычайно сложные выражения, которые оценивают многие возможные независимые переменные, например, «таблицы решений»:
http://en.wikipedia.org/wiki/Decision_table
Но я присоединюсь к хору здесь, чтобы поддержать идеи, упомянутые о разумном использовании троичного оператора, если это возможно, идентифицируя самые маловероятные условия, которые, если они будут выполнены, позволят вам прекратить остальную часть оценки, сначала исключив их, и добавьте ... обратное этому ... пытаясь выделить наиболее вероятные условия и состояния, которые могут позволить вам продолжить работу без тестирования "дополнительных" случаев.
Предложение Мириам (см. Выше) увлекательно, даже изящно, как «концептуальное искусство»; и я на самом деле собираюсь попробовать это, пытаясь «заключить в скобки» мое подозрение, что это приведет к тому, что код сложнее поддерживать.
Моя прагматичная сторона говорит, что здесь нет ответа "один размер подходит всем" в отсутствие довольно специфического примера кода и полного описания условий и их взаимодействий.
Я фанат «установки флага»: имея в виду, что когда мое приложение переходит в какой-то менее распространенный «режим» или «состояние», я устанавливаю логический флаг (который может быть даже статичным для класса): для меня это упрощает написание сложных вычислений if / then else позже.
лучший, Билл