2010-05-09 4 views
7

Я создаю игру на Java для удовольствия, и я пытаюсь решить, как организовать мои классы для графического интерфейса. До сих пор все классы с только компонентами качания и компоновкой (без логики) находились в пакете под названием «ui». Теперь мне нужно добавить слушателей (т. Е. ActionListener) к компонентам (т. Е. Кнопке). Слушателям необходимо общаться с классом Game.Как мне организовать Java-интерфейс?

В настоящее время у меня есть: Game.java - создает кадр добавления к нему панелям

import javax.swing.*; 
import ui.*; 

public class Game { 

    private JFrame frame; 
    Main main; 

    Rules rules; 

    Game() { 
     rules = new Rules(); 

     frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     main = new Main(); 
     frame.setContentPane(main.getContentPane()); 
     show(); 
    } 

    void show() { 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { new Game(); } 

} 

Rules.java - логическая игра

пакета

пользовательского интерфейса - все классы создают новые панели, которые будут выгружены с область содержимого основного кадра Main.java (Главное меню) - создает панель с компонентами

Где я теперь размещаю функциональность для основного класса? В игровом классе? Раздельный класс? Или вся организация ошибается?

Thanks

ответ

4

Прежде всего: это хорошее намерение, что вы сделали. Пытаясь сохранить организованный код, вы с уверенностью поможете вам в программировании. Но постарайтесь учесть это: разработка хорошего кода выходит за рамки организации и сглаживания исходного кода. Например ... вы используете какую-либо модель UML? Применяете ли вы шаблон дизайна? Are your classes really highly cohesive? How about coupling?

Все эти вещи проведут вас через процесс написания хорошего кода, который, кажется, является тем, что вы хотите в этот момент. И результат всего, что сделает ваш код организованным и легким для работы.

+4

Не делайте UML, если не знаете, зачем вам это нужно. Не делайте шаблонов проектирования, если это не имеет смысла. Сохраните код простым, сохраните код в чистоте, рефакторинг при необходимости. – Kirill

+1

@ Кирилл: Я полностью согласен с тобой. Спасибо за ваш комментарий. – Cristian

Смежные вопросы