Switch is a popular code smell in many OO languages (when you follow OO paradigm) and in most of cases it indicates that there should be a polymorphic call there. When you're about to write a switch, stop for a minute and double-check your design. Perhaps you can make a polymorphic call instead.
ну охуеть теперь