修正ioc工厂方法的实现