Часто, когда вы видите шум от огромного оператора switch или многих операторов if, которые могут попасть в несколько блоков, вы пытаетесь подавить плохой дизайн.
Вместо этого, что если вы внедрили шаблон спецификации, чтобы увидеть, соответствует ли что-то, а затем действовали на него?
foreach(MonthSpecification spec in this.MonthSpecifications)
{
if(spec.IsSatisfiedBy(month))
spec.Perform(month);
}
тогда вы можете просто добавить различные спецификации, которые соответствуют тому, что вы пытаетесь сделать.
Трудно сказать, какой у вас домен, поэтому мой пример может быть немного надуманным.