更新工厂方法模式