更换工厂类和创建方法