シナリオ
これは決して現実的ではないので、一粒の塩で例を挙げてみましょう。シナリオを簡単に伝えるためのものです。そうは言っても、次のクラス定義があるとしましょう。
interface iVehicle {
public function getDescriptionFormat1();
public function getDescriptionFormat2();
}
class VehicleDescription {
...
}
class TruckDescription extends VehicleDescription implements iVehicle {
...
}
class CarDescription extends VehicleDescription implements iVehicle {
...
}
問題
クラス CarDescription および TruckDescription は、記述形式の一方または両方を実装できます。1 つだけが必要な場合に、両方のクラスで両方のメソッドをオーバーライドするのは間違っているようです。そのような制限を実装する適切な方法は何ですか? または、それが悪い設計上の決定であるという事実を私に売り込むこともできます.
編集- 私の例では少しあいまいすぎたのではないかと思います。謝罪いたします。2 つの記述は、文字列ではなく、多かれ少なかれ異なるデータ構造です。1 つは長さ 3 列の詳細な説明を表す配列を返す場合があり、もう 1 つは 2 列のより基本的な説明テーブルを返す場合があります。