修改抽象工厂实现