改进代码，使代码更加符合简单工厂模式