switch...case一般认为是不利于扩展的,譬如说新增一种策略就需要多加一个case?!
所以一般用多态、约定协议等来代替switch...case,让代码实现自动路由。
但是策略过多导致代码膨胀的问题是无解的。