2010-05-09 23 views
7

Estoy creando un juego en Java por diversión y estoy tratando de decidir cómo organizar mis clases para la GUI. Hasta ahora, todas las clases con solo los componentes de swing y el diseño (sin lógica) están en un paquete llamado "ui". Ahora necesito agregar oyentes (es decir, ActionListener) a los componentes (es decir, botón). Los oyentes necesitan comunicarse con la clase Game.¿Cómo debo organizar mi GUI de Java?

Actualmente tengo: Game.java - Crea el marco de añadir paneles a ella

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 - la lógica del juego

paquete

ui - todas las clases crean nuevos paneles que pueden intercambiar con el panel de contenido del marco principal Main.java (Menú principal): crea un panel con componentes

¿Dónde coloco ahora la funcionalidad para la clase Principal? En la clase de juego? Clase separada? ¿O está toda la organización equivocada?

Gracias

Respuesta

4

Antes que nada: es una buena intención lo que ha hecho. Tratar de mantener su código organizado lo ayudará de manera certante en la programación. Pero trate de tener esto en cuenta: desarrollar un buen código va más allá de organizar y clasificar su código fuente. Por ejemplo ... ¿estás usando algún tipo de modelo UML? ¿Estás aplicando algún patrón de diseño? Are your classes really highly cohesive? How about coupling?

Todo eso te guiará en el proceso de escribir un buen código, que parece ser lo que quieres en este momento. Y el resultado de todo eso hará que su código se organice y sea fácil de mantener.

+4

No hagas UML a menos que sepas por qué lo necesitas. No hagas patrones de diseño a menos que tenga sentido. Mantenga el código simple, mantenga el código limpio, refactorícelo según sea necesario. – Kirill

+1

@Kirill: estoy completamente de acuerdo con usted. Gracias por tu comentario. – Cristian