Предпочтение полиморфизму
Большое число блоков case может указывать на необходимость в рефакторинге, который заключается в замене блока наследованием. Методы DrawCircle() и DrawSquare() следует заменить единственным методом Draw(), который будет поддерживать рисование и окружностей, и прямоугольников.
С другой стороны, иногда блоки case служат для разделения по-настоящему разных видов объектов. Если методы выполняют похожий набор действий, то их следует выделить в один и применить наследование, но если логика методов сильно отличается, то использование case будет в данном случае оправданным.
#tips #polymorhism