增加抽象工厂