私は趣味のプロジェクトとしてアプリケーションに取り組んでいます。スキューバダイビングの減圧スキームを計算するためにJavaとシステムの一部で書かれています。 私が持っている問題は、私のダイブプランを保管するクラスにあります。うまくいけばそれほど問題はありませんが、私はそれがより良いデザインになるという気持ちがあるので、いくつかのフィードバックをお願いしたいと思います。Javaの設計の質問
私が今得意とするのは以下のとおりです。
クラスDivePlan
には、DiveOperations(ArrayList<DiveOpperation>
)のArrayListがあります。 DivePlan
クラスには3つの機能があります。 1つは降下を計画し、1つは上昇を計画し、もう1つは同じ深さで平坦な潜水を計画する。これらの関数はすべて、DiveOpperation
オブジェクトをArrayListに追加します。しかし、上昇と下降には、同じ深さにとどまるダイビングとしてのいくつかの属性があります。例えば、上昇/下降の速度(m/s)。私はフラットダイブのスピードを0に設定しましたが、それは正しいとは思いません。 DiveOpperation
を拡張する別のクラスを作成する必要があることは承知していますが、配列から取り出したときにascent
、descent
またはflatdive
クラスであるかどうかわかりません。
このような機能にはどのような優れた設計がありますか?
これは答えることができません。あなたの一般的なアプローチがかなり良いように聞こえますが、平らな部分を0のスピードで行うことは本質的に間違っていません。 – Falmarri
他人にあなたのコードを使用させ、怪我につながる誤ったダイビングプランを提出すると、法的責任を問われる可能性があります。 –