2011-12-09 4 views
0

considier、私はclass GUIManagerのシンプルなMineSweeperGameのコードを書いています。ここで関連する一連のデータメンバーと関数をグループ化する方法。そのグループの1つのインスタンスのみが存在する必要があります。

 class GUIManager{ 
      class GameBoardManager{...} 
      class IconManager{...} 
      class BoardMenuBar{...} 
      class BoardManager{...} 
      class DataManager{...} 
} 

しかし、私は、私はすべての内部クラスの正確に一つのインスタンスが必要です

を感じた本当の不安なもの。 私はこのコードの将来の開発者と(BLOCKQUOTEに与えられた)、この情報を伝達する方法はありません唯一のグループ化を促進するために、これらの内部クラスを作って、読みやすさ

したがって、私の質問は、クラスの任意の特殊なタイプは、そのクラスの唯一のオブジェクトを作成することができるようなことが可能であり、

のですか? 2つのオブジェクトを作成すると、コンパイルエラーが発生します。または(blockqouted)情報を主張するために今私がしなければならないこと。

要素にアクセスしながら、シナリオを悪化さ

public class GUIManager extends JFrame 
{  
     final GameBoardManager gUIGameBoard; 
     final BoardMenuBar menuBar; 
     final GameInfoDisplayer gameInfoDisplayer; 
     final DataManager dataManager; 
     final IconManager iconManager; 
     .....  
} 

を作り、私が使用する必要があり、gUIGameBoard.boardButton[][]gUIGameBoard.dimensionOfBoardgUIGameBoard.boardColor等...

このような方法でアクセスしている間、それはのように聞こえます。..私はGameBoardManagerのための多くのオブジェクトを持っており、ここで私はgUIGameBoardの要素にアクセスしています。しかし、実際のところ、GameBoardManagerは1つしかありません。GUIManagerの場合のみ可能です。これは、他の内部クラスオブジェクトと同様の場合です。

私の質問は? GUIManagerにはGameBoardManagerが1つだけ必要です。内部クラスを作成せずに関連するアイテムをグループ化することは可能です。以来、内部クラスのオブジェクトにアクセスしている間、私は多くを持っているように聞こえます。

答えて

0

すべての内部クラスのコンストラクタがプライベートである場合、GUIManager以外は誰もインスタンス化できません。コメントを追加してください。これは合理的なアプローチです。

しかし、あなたのクラスはリストラを必要とするかもしれません - それはたくさんの内部クラスです!

関連する問題