2010-05-09 8 views
7

Ich erstelle ein Spiel in Java zum Spaß und ich versuche zu entscheiden, wie ich meine Klassen für die GUI organisieren. Bisher sind alle Klassen mit nur den Swing-Komponenten und Layout (keine Logik) in einem Paket namens "Ui". Ich muss nun Listener (d. H. ActionListener) zu Komponenten hinzufügen (d. H. Knopf). Die Zuhörer müssen mit der Spielklasse kommunizieren.Wie soll ich meine Java GUI organisieren?

Zur Zeit habe ich: Game.java - schafft den Rahmen hinzufügen Panels es

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 - Spiellogik

ui Paket - alle Klassen erstellen neue Panels mit ausgelagert werden Inhaltsfenster des Hauptrahmens Main.java (Hauptmenü) - erstellt ein Bedienfeld mit Komponenten

Wo platziere ich jetzt die Funktionalität für die Hauptklasse? In der Spielklasse? Getrennte Klasse? Oder ist die ganze Organisation falsch?

Dank

Antwort

4

Zunächst einmal: es ist eine gute Absicht, was Sie getan haben. Der Versuch, den Code in Ordnung zu halten, wird Ihnen bei der Programmierung helfen. Aber denken Sie daran: Die Entwicklung von gutem Code geht über das Organisieren und Klassifizieren Ihres Quellcodes hinaus. Zum Beispiel ... verwenden Sie irgendeine Art von UML-Modell? Wenden Sie ein Designmuster an? Are your classes really highly cohesive? How about coupling?

All diese Dinge werden Sie durch den Prozess des Schreibens von gutem Code führen, der an dieser Stelle zu sein scheint. Und das Ergebnis von allem wird Ihren Code organisiert und leicht zu verwalten machen.

+4

Tun Sie nicht UML, wenn Sie nicht wissen, warum Sie es brauchen. Machen Sie keine Muster, solange es keinen Sinn ergibt. Halten Sie den Code einfach, halten Sie den Code sauber, Refaktor nach Bedarf. – Kirill

+1

@Kirill: Ich stimme Ihnen vollkommen zu. Vielen Dank für Ihren Kommentar. – Cristian

Verwandte Themen