修复
重构代码，加入Factory设计模式