Breaking a large Switch case into multiple switch cases

Many a times we stumble upon Switch cases which run into 100s of cases. Ideally it should be under 30 (highly subjective) or any other number which you deem manageable. In the given below code example we will break a switch case into multiple ones.

 func aLargeSwitchFunction(yourCaseValue:<Enum or CaseType>) {
      // 100 cases in all
     switch yourCaseValue {
          case .<enumvalue>:
           //executable statement
          case .<enumvalue>:
          // executable statement
            ...
          case .<enumvalue>:
          // executable statement
          default:
          //executable statement 
      }
}

The above code example utilizes 100 + default cases in a single switch. Now I will try to break it into manageable functions.

func aPreviouslyLargeSwitchFunction(yourCaseValue:<Enum or CaseType>) {
      // max 30 cases
      switch yourCaseValue {
          case .<enumvalue>:
           //executable statement
          case .<enumvalue>:
          // executable statement
            ...
          case .<enumvalue>:
          // executable statement
          default:
         // handle remaining cases
         aLogicalBreakup2(yourCaseValue: yourCaseValue)
      }
}
// function 2
func aLogicalBreakup2(yourCaseValue:<Enum or CaseType>) {
      switch yourCaseValue {
          case .<enumvalue>:
           //executable statement
          case .<enumvalue>:
          // executable statement
            ...
          case .<enumvalue>:
          // executable statement
          default:
         // handle remaining cases
         aLogicalBreakup2(yourCaseValue: yourCaseValue)
      }
}
// function 3
func aLogicalBreakup3(yourCaseValue:<Enum or CaseType>) {
      switch yourCaseValue {
          case .<enumvalue>:
           //executable statement
          case .<enumvalue>:
          // executable statement
            ...
          case .<enumvalue>:
          // executable statement
          default:
          //executable statement 
      }
}

As you can see each function handles only 30 or so cases and passes on remaining cases to be handled to other functions. This way you can break existing switch cases without breaking test cases.

A pat on the back !!