加入工厂方法模式