Как сгруппировать связанный набор элементов данных и функций, где должен быть только один экземпляр этой группы?

Учтите, я пишу код для class GUIManager простой игры MineSweeperGame.

Здесь,

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

Но самое неприятное, что я чувствовал, это то,

Мне нужен ровно один экземпляр каждого внутреннего класса. Я сделал эти внутренние классы только для того, чтобы способствовать группировке и удобочитаемости.

Невозможно передать эту информацию (приведенную в кавычках) будущим разработчикам этого кода.

Отсюда мой вопрос,

Возможен ли любой особый тип классов, чтобы можно было создать только один объект этого класса? то есть создание 2 объектов даст ошибку компиляции. или что я должен сделать сейчас, чтобы настаивать на (заблокированной) информации.

Делая сценарий хуже,

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

при доступе к элементам я должен использовать gUIGameBoard.boardButton[][] , gUIGameBoard.dimensionOfBoard , gUIGameBoard.boardColor и т. д.

При доступе таким образом это звучит так... У меня есть много объектов для GameBoardManager, и здесь я обращаюсь к элементу gUIGameBoard. Но на самом деле есть только один GameBoardManager, который возможен только для GUIManager. Это похоже на случай с другими объектами внутренних классов.

Отсюда мой вопрос? У меня должен быть только один GameBoardManager для GUIManager. Можно ли сгруппировать связанные элементы без создания внутреннего класса. Поскольку при доступе к объекту внутреннего класса это звучит так, как будто у меня их много.


person Muthu Ganapathy Nathan    schedule 09.12.2011    source источник


Ответы (1)


Если конструкторы всех ваших внутренних классов закрыты, никто, кроме GUIManager, не сможет их создать. Добавьте комментарий, и это разумный подход.

Однако ваш класс может нуждаться в реструктуризации — это много внутренних классов!

person user949300    schedule 09.12.2011