添加工厂模式代码