★★Java質問・相談スレッド178★★ [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0565デフォルトの名無しさん
2016/08/29(月) 23:00:52.88ID:WaGPxa3J商品をオブジェクト、そのフィールドにpriceがあり、例えば日本円での価格をsetPrice()で設定したとして、
・ある商品A、B、C は、ドルでの価格を知る必要がある
・ある商品A、 C、Dは、ユーロでの価格を知る必要がある
・それぞれのメソッドは、どの商品についても同じ処理
こういった場合のクラスの設計について、よい指針を教えてください
・商品クラスを継承したA、B、C、Dクラスに対し、A、B、CにgetDollarPrice()を、A、C、DにgetEuroPrice()をコピペで実装する
・商品クラスを継承したAC商品クラスにgetDollarPrice()、getEuroPrice()を実装。同じくB商品クラスにはgetDollarPrice()のみ、D商品クラスにはgetEuroPrice()のみを実装
・基底の商品クラスにgetDollarPrice()、getEuroPrice()を実装する。継承したクラス側では、使わないメソッド(例えばDのgetDollarPrice())は何もしない処理でオーバーライド
・Public static calcDollar()、同calcEuro()といったメソッドを作成し、必要時に計算する
上ではドル・ユーロとしましたが、他にも元とかウォン等色々種類があり、そして商品ごとに必要な機能が不規則に異なっているので、
どう設計したらよいか悩んでいます
ちなみの元のソースは、C++の多重継承を用いて実装されていました
■ このスレッドは過去ログ倉庫に格納されています