анти-кампания

Недавно я столкнулся с очень интересным сайтом, на котором выражена очень интересная идея - кампания против «если». Вы можете увидеть это здесь наwww.antiifcampaign.com, Я должен согласиться с тем, что сложные вложенные IF-выражения - абсолютная боль в тылу. В настоящее время я работаю над проектом, который до недавнего времени имел несколько сумасшедших вложенных IF, которые прокручивались вправо для довольно разных способов. Мы решили наши проблемы двумя способами - мы использовали Windows Workflow Foundation для решения проблем маршрутизации (или рабочего процесса). И мы находимся в процессе реализации всех наших бизнес-правил, используя правила ILOG для .NET (недавно приобретенные IBM !!). Это по большей части излечило наши вложенные IF-боли ... но я задаюсь вопросом, сколько людей излечивают свои боли так, как предлагают хорошие люди из AntiIfCampaign (посмотрите пример здесь) путем создания большого количества абстрактных классов для представления заданного сценария, который изначально охватывался вложенным IF. Интересно, может ли другой способ решения этой проблемы также заключался бы в использовании контейнера IoC, такого как StructureMap, для входа и выхода из разных частей функциональности. В любом случае...

Question:  Учитывая сценарий, где у меня есть вложенный сложный оператор IF или SWITCH, который используется для оценки заданного типа вещи (скажем, оценки Enum), чтобы определить, как я хочу обработать эту вещь по типу enum - каковы некоторые способы сделать ту же форму обработки без использования иерархической структуры IF или SWITCH?

public enum WidgetTypes
{
    Type1,
    Type2,
    Type3,
    Type4
}

...

WidgetTypes _myType = WidgetTypes.Type1;

...

switch(_myType)
{
    case WidgetTypes.Type1:
        //do something
        break;

    case WidgetTypes.Type2:
        //do something
        break;

    //etc...
}

Ответы на вопрос(14)

Ваш ответ на вопрос