数時間後に試験があり、サンプル問題を解こうとしています。次の質問の解決策が見つかりませんでした。
次の状況に対応するクラス図を描きます。
食料品店 (スーパーマーケットなど) が商品を販売しています。アイテムには、食用 (食品として使用できるあらゆるアイテム) と非食用の 2 種類があります。一部のアイテムは重量で販売され、一部は単位ごとに販売されます。課税される品目と課税されない品目があります。一部のアイテムは、グループで販売すると特別価格になります (例: 2 つで 3 ドル)。購入には多くのアイテムが含まれる場合があります。
クラス図では、クラス/抽象クラス/インターフェイス、関連付け、および関連付けの多重度のみを表示します。操作を含めないでください。設計でインターフェイスと抽象クラス (存在する場合) を明確に示します。
さらに、設計は 可能な限り柔軟にする必要があります。特に、次の点に注意する必要があります。
1) アイテムは食べられるかどうかのどちらかであり、この事実はアイテムの存続期間中に変化しませんが、価格設定戦略はアイテムの存続期間中に変化する可能性があります。
2) 各価格設定戦略は、特定の一連の操作に関連付けられています。たとえば、課税戦略の場合、アイテムが課税対象かどうかに関係なく、税金を計算する操作を行うことができます (この関数は非課税アイテムに対して 0 を返すことができます)。
3) 価格設定戦略の一連の操作は同じままですが、それらの操作の処理方法は時間の経過とともに変化する可能性があります。たとえば、食用と非食用の品目に対する税金の計算方法は、時間の経過とともに異なる場合があります。
4) 価格設定戦略の一連の操作はさまざまなアイテムで同じままですが、アイテムごとに異なる方法でこれらの操作を実装したい場合があります。たとえば、オレンジとリンゴの税金を別の方法で計算したい場合があります。
ストラテジーデザインパターンに合うかなと思ってこんな感じでやってみたのですが、いまいちよくわかりません。