私は約1年半の間Javaでコーディングしており、小さなゲームやプログラムを作っていると思います。問題は私がほとんど独学で教えていることと、コードとクラス構造の大部分が組織化されていないか、「正しく構造化されている」ことです。これは私が作ったより小さいものについては私にとって重要ではありませんでしたが、私が大きなプロジェクトを引き受けるなら、それを正しく構造化して整理したいと思います。私はjavaのクラスの正しい構造は何ですか?
- メインクラス(メインループ+ Mainメソッド)を有していた以前のミニRPGゲームで
- プレーヤークラス
- エンジンクラス(含むマップ(プレイヤーの位置とプレーヤーの統計情報を含む)と、プレイヤーとマップ間の衝突検出
- マップクラス(含む地図データ)
マイのメインクラスはプレーヤーとのエンジン、およびのインスタンスを含んエンジンは地図のインスタンスを持っていました。問題は、プレーヤーはその後、それがあった、と何かが地図に起こったときエンジンがプレーヤーの位置と統計の調整ができませんでしたエンジンを伝えるcould'tということです。そこで、PlayerとEngineの両方で静的な変数とメソッドを使用して、通信できるようにしました。
私の全体的な質問は、これがクラスの正しい構造であると思います。静的メソッドと変数をここで使用するのは正しいですか?もしそうでなければ、これらのクラスをどのように構造化するのでしょうか、それとも多かれ少なかれクラスが必要でしょうか?
私の全体的な目的は、この前のゲームでクラスを構造化する方法を理解することで、私が取りたい大きなプロジェクトでクラスをよりよく構築できるようにすることです。
私はエンジンにマップとプレーヤーの両方の参照があると思います。これは、Mapからの情報を使用してState(おそらくPlayer-Objects内のデータ)を変更する義務を負うクラスです。 – Fildor
下の回答を見てください。しかし、私はシングルトンを見ることになると思います。あなたがこれらのことに精通しているかどうかはわかりませんが、確かに役に立つはずです。特にあなたの 'map'と' engine'クラスのために。 – creulcat
「クラスの構造」と呼ぶものを改善することに本当に関心があるのであれば、「ソフトウェアアーキテクチャー」についての記事を読んでみてください。ゲーム開発で使われている構造があり、他の場所では惑わされる可能性があることを覚えておいてください。叔父のボブのクリーンコーダーの書籍は、常に読む価値があります。 – Fildor