メンテナンス性を念頭に置いてオブジェクト指向の視点からこれを行う方法は混乱します。常に変化を考えるためにアプリケーションを設計するときに教えられました。だから私はデザインのために個人的なプロジェクトに時間を費やそうとしています。ちょっと後でそれを変更したいかもしれません。このアプリケーションは、Divisionという最新ゲームに触発されました。それは毎秒のダメージの計算機になります。異なるプロパティを持つオブジェクトを作成する
私が選んだテクノロジーは、Spring、REST、Hibernate、Angular.js 1.0とmavenです。おそらくブートストラップですが、私はバックエンドに集中しているため、この時点ではわかりません。私が理解しているこれらのテクノロジーは、このレベルのアプリケーションには本当に必要ではありませんが、私は学習目的でこれをやっています。
あなたはプロジェクトの内容を理解しているので、今私が持っている問題です。私は、POJOに関して、サーバオブジェクトの向きを変えるのに苦労しています。
私たちは武器と戦闘機を持っています。武器は異なるモッドと属性を持つことができます。アサルトライフルはスコープを持つことができますが、なぜショットガンにスコープがあるのかなど、すべての武器が同じモッズを持つわけではありませんか?属性は武器では相対的に同じですが、武器の種類によって変わります。歯車の場合、歯車は、歯車の種類に基づいて異なる属性を有することができる。グローブには属性があり、ヒットチャンスを上げることができますが、バックパックには弾薬量を増やす属性があります。手袋は弾薬の属性を持つことができず、バックパックはクリティカルヒットチャンスを持つことはできません。
手袋とバックパックはどちらもギアですが、同じタイプのギアではありません。アサルトライフルとショットガンの両方が武器ですが、同じ種類の武器ではありません。私はギアと武器と呼ばれるスーパークラスを作成し、さまざまな武器をサブクラス化することを考えました。私はプロの観点からこれを行う方法とデザインにとって最高の学習体験として混乱しています。
説明と同じ方法で、これらの関連付け/関係を表すモデルイメージを作成できます。できるだけ簡単に開始しますが、すべての「エンティティ」を含めるようにしてください。この[エンティティリレーションシップモデル](https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model)を使用すると、アプリケーションで作業したいオブジェクトモデルを視覚的に推論できます。 –