你必须决定是否使用Replace Type Code with Subclass(以子类取代类型码)或Replace Type Code with State/Strategy(以State/Strategy取代类型码)。一旦这样完成继结构之后,你就可以运用Replace Conditional with Polymorphism(以多态取代条件表达式)了。
如果你只是在单一函数中使用switch语句,多态就有点杀鸡用牛刀了。这种情况下Replace Parameter with Explicit Methods(以明确函数取代参数)是个不错的选择。如果你的选择条件之一是null,可以试试Introduce Null Object(引入null对象)。