2010-05-09 27 views
7

Tôi đang tạo một trò chơi trong Java để giải trí và tôi đang cố gắng quyết định cách tổ chức các lớp học của mình cho GUI. Cho đến nay, tất cả các lớp chỉ có các thành phần swing và layout (không logic) nằm trong một gói có tên là "ui". Bây giờ tôi cần thêm người nghe (tức là ActionListener) vào các thành phần (tức là nút). Người nghe cần giao tiếp với lớp Game.Tôi nên tổ chức GUI Java của mình như thế nào?

Hiện nay tôi có: Game.java - tạo ra khung thêm tấm để nó

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 - trò chơi logic

gói

ui - tất cả các lớp học tạo tấm mới để được hoán đổi với khung nội dung của khung chính Main.java (Menu chính) - tạo bảng với các thành phần

Bây giờ tôi đặt chức năng cho lớp chính ở đâu? Trong lớp trò chơi? Lớp học riêng biệt? Hay toàn bộ tổ chức sai?

Cảm ơn

Trả lời

4

Trước hết: đó là ý định tốt về những gì bạn đã làm. Cố gắng giữ mã của bạn được tổ chức sẽ giúp bạn lập trình một cách chắc chắn. Nhưng hãy cố gắng ghi nhớ điều này: phát triển mã tốt vượt ra ngoài tổ chức và clasify mã nguồn của bạn. Ví dụ ... bạn có đang sử dụng bất kỳ loại Mô hình UML nào không? Bạn đang áp dụng bất kỳ mẫu thiết kế nào? Are your classes really highly cohesive? How about coupling?

Tất cả những điều đó sẽ hướng dẫn bạn qua quy trình viết mã tốt, có vẻ như đó là những gì bạn muốn vào thời điểm này. Và kết quả của tất cả điều đó sẽ làm cho mã của bạn được tổ chức và dễ dàng để duy trì.

+4

Không làm UML trừ khi bạn biết tại sao bạn cần. Không làm các mẫu thiết kế trừ khi nó có ý nghĩa. Giữ mã đơn giản, giữ mã sạch sẽ, tái cấu trúc khi cần. – Kirill

+1

@Kirill: Tôi hoàn toàn đồng ý với bạn. Cám ơn bạn đã góp ý. – Cristian

Các vấn đề liên quan