使用简单工厂模式重构代码，使代码更清晰，更容易扩展