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();
}
この問題を解決してください。