7

大学の OOP クラスの仕様からフライト予約システムを構築しています。システムは C# で作成する必要があります。次の問題に取り組む最善の方法は何だろうと思っています

同社は現在、割引制度を実施している。Western Isles の住民は 10% の割引を受けられます。スコシアは、マーケティング目的でこれらの乗客の居住島も記録します。ビジネス旅行者は 25% の割引を受け、会社名を提示する必要があります。通常の乗客は、現在のプロモーションの一部でない限り、通常、割引を受けません。その場合、5% の割引を受けます。

個々のタイプの顧客が継承する旅客クラスを用意する必要がありますか? これに関する任意の助けをいただければ幸いです

4

4 に答える 4

0

あなたは割引政策を柔軟にしたいのですが、乗客はそれほど違いはありません。

そこから派生するCustomer基本クラスを持つこともできますが、それは割引ロジックの適用方法には実際には影響しません。PassengerCompany

継承は異なる動作を意味しますが、乗客の動作は変更されず、適用された割引のみが適用されます。割引は乗客の状態の一部ではないため、そのクラスには適合しません。さらに、多くの割引は一定期間のみ有効であり、それをCustomerクラスにエンコードすることは意味がありません。動的に追加したり、削除したりできるはずです。

割引ロジックは実際には顧客に適用されるビジネスルールであるため、別のクラスのセットにカプセル化する必要があります。これを実装するために使用される一般的なパターンは戦略です。デザインによっては、さまざまなタイプのユーザーにさまざまなポリシーを適用したい場合、ビジターパターンが役立つかどうかがわかります。

于 2013-03-13T09:38:41.553 に答える
0

以前の投稿で説明したように、ストラテジー パターンを使用します。「もう 1 つの可能性はストラテジー パターンです。これにより、乗客のチケットを作成するためのクリーンなインターフェイスが提供されますが、チケットを要求している乗客のタイプに応じて、内部的には割引戦略が切り替わります。」

于 2013-03-15T04:51:56.677 に答える