抽象工厂
工厂方法