I use switch statements when I know that the switch will contains 2/3 maybe 4 options and that number will not grow in the future. But there are situations in that you know that the amount of cases in the switch will grow over the time so in that case I really like one pattern I have implemented a long time ago, you can see an example of that on my comment on this post: