設計上の問題があります。あなたの助けが必要です。
衣料品店をデザインする必要があるとします。この店には売り手と買い手がいて、それぞれがIDで店に登録されています。
売り手が買い手としてサインインできるようにし、その逆も可能にします(最初にサインアップしたのと同じIDを使用します)。
買い手と売り手は異なるデータメンバーを持っていることを覚えておいてください。また、関数Buyを使用するために必要なのは、売り手データメンバーではなく買い手データメンバーだけです。
一見したところ、売り手は買い手とは異なるデータメンバーを持っていることを考慮して、私はこれら2つのクラスをPersonから派生したShopPersonから派生したものとして設定することにしました。
ShopPersonクラスを使用することにした理由は、買い手と売り手に共通の関数を含む基本クラスを許可するためです(どちらも売買できるため)
私の問題は:
「購入」機能は購入者のメンバーのみである必要がありますが、販売者を購入者としてどのように扱うことができますか?偶然に買い手が売り手である場合、彼はこの機能を持ちません。
上記の私の解決策は、ShopPersonクラスを使用して共有/共通クラスを作成することも適切ではありません。これは、Buy関数が、バイヤー専用のデータメンバーを使用し、ShopPersonがそれらに精通していないためです。
私が考えている唯一の解決策は、継承を削除することですが、これが正しいかどうかはわかりません。この設計上の問題をどのように解決できますか?何か案は?
シンジケーター、ありがとうございました!