から派生したいくつかの抽象 Vehicle
クラスと車、トラック、オートバイの抽象クラスがあると考えてくださいVehicle
。また、トラックやオートバイ用にも、燃料ベースの車や電気ベースの車などを作成できなければならないことを想像してみてください。(具体的なクラス)
2つの質問:
1.車のエネルギーを、それが何であるかを知らずに、多形的に満たしたいと考えてください。たとえば、車両が燃料ベースの場合、燃料を充填したいので、メソッドは3つのパラメーターを使用する必要があります。
void FillUpEnergy(EfuelType i_fuelType,int amounOfEnergy, int maxAmountOfEnergy)
しかし、電気ベースの車両の場合、ほぼ同じ機能署名が必要ですが、今回はもちろん燃料タイプなしです。たとえば、(2つのパラメーター):
void FillUpEnergy(int amounOfEnergy, int maxAmountOfEnergy)
FillUpEnergy
上記の制約で多形法を行うことはできますか?(異なるメソッドのシグネチャ)
2.私の実装では、すべての具象クラスは、または(Engineから派生した他の具象Engine
クラス)を表す(別の抽象クラス)の参照を保持します。たとえば、の参照を保持するという名前の具象クラスがあります。
このアーキテクチャは十分に優れていますか、それともガレージシステムを実装するためのより良い方法がありますか?(オブジェクト指向デザインなどに関して)FuelEngine
ElectricEngine
ElectricCar
ElectricEngine