我正在创建一个 abstractFactory 类,我希望能够将具体工厂作为参数发送。这样我就可以删除抽象类中的 if/else 链。
我的问题是我不确定如何将其类型转换回我的抽象类中的具体类以调用 createVehicle() 方法。
car = UniversalVehicleFactory.getFactory().createVehicle(CarFactory);
plane = UniversalVehicleFactory.getFactory().createVehicle(PlaneFactory);
在 UniversalVehicleFactory 我有方法 createVehicle 这是我遇到问题的方法。我想要实现的是:获取参数,确定其类并将其转换为该类,然后调用其内部 createVehicle 类。
public Vehicle createVehicle(AbstractFactory factory) {
// I want to take factory,
// cast it to the concrete factory, and
// call createMethod() on the factory
return factory.getInstance().createVehicle();
}
非常感谢帮助解决这个问题!