2011-12-20 12 views
3

私は現在、より大きなプロジェクトを処理する方法を学ぶために、単純なマネージャーゲーム/シミュレーションを作成しています。 今のところ、Eclipseで作成された/ srcフォルダにすべてのクラスがあります。コーディングプラクティス、プロジェクトフォルダ構造

私は自分のプロジェクトを構造化することをお勧めします。

  • マッチ
  • TeamMatch
  • プレーヤー
  • PlayerFactory
  • チーム
  • TeamFactory
  • TeamSchedule
  • シーズン
: は、私は以下のクラスを持っています

これで、マッチのためのインターフェースを作成し、MatchとTeamMatchの両方でそれを実装することがアイデア(とにかく正しいことでしょう)でしょう。私は論理的なフォローアップは、インターフェイスの後に名前が付いたフォルダを持っていると思うし、内部に関連するクラスを持っています。

しかし、PlayerクラスとPlayerFactoryクラスはどうですか? Playerは、年齢、名前などのプレーヤの基本情報を持っています。PlayerFactoryは、要求されたとおりにPlayerを作成します。しかし、これらのクラスのための共通のインターフェイスを見つけることはおそらくないようです! TeamFactoryと同じです。おそらく、すべての工場クラスをグループ化しているのでしょうか?

チームクラスを見てみましょう。チームは選手で構成されています。これらの2つは一緒にグループ化されるべきですか?季節にはTeamScheduleがあります。TeamScheduleにはTeamMatchesがあり、TeamMatchesには2つのチームがあります。

これは私が考えている一つの選択肢である:

  • SRC
    • 試合
      • マッチ
      • TeamMatch
    • 工場
      • PlayerFactory
      • TeamFactory
    • リーグ
      • シーズン
      • プレーヤー
      • チーム
      • TeamSchedule

私が作ったばかげたミスや、全く別の意見がありますか?

+3

'Math'と' Factories'フォルダを参照して、パッケージ名をlowerCaseに入れてください。 –

+0

提案されているようにパッケージ名を修正しました。 – Zavior

答えて

4

私がお勧めします:

org.managergameのような名前を持つべき基本パッケージを作成します。

team,match,playerという名前の基本パッケージの下に3つのパッケージを作成します。

MatchおよびTeamMatchmatchに行きます。

PlayerおよびPlayerFactoryplayerに行きます。

Team,およびTeamScheduleteamに行ってください。他

すべてが基本パッケージの下にすることができます。

+0

+1:実装するパターンや技術的なものではなく、類似 –

+0

http://www.javapractices.com/topic/TopicAction.do?Id=205は - パッケージによってFeature-と - パッケージによって層 - の違いを理解するのに役立つかもしれません。 feature_によって_packageは私がここに欲しいものであるよう – mickthompson

+0

それが見えます。ありがとう! – Zavior

2

私は通常、層によってパッケージを持っている:modelservicepersistenceutil