AbstractFactory 修正