修改factory的实现方式--- 还需要继续优化

修改factory的实现方式--- 还需要继续优化