2010-05-09 9 views
7

Eğlence için Java'da bir oyun yapıyorum ve GUI için sınıflarımı nasıl düzenleyeceğime karar vermeye çalışıyorum. Şimdiye kadar, sadece salıncak bileşenleri ve düzeni (mantık yok) ile tüm sınıflar "ui" denilen bir paket içinde. Şimdi bileşenlere (yani, ActionListener) bileşenlere (yani, butona) eklemem gerekiyor. Dinleyicilerin Oyun sınıfı ile iletişim kurması gerekiyor. ŞuJava GUI'imi nasıl düzenlemeliyim?

Ben: Game.java - çerçeve Panellerin eklenmesi oluşturur

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 - oyun mantığı

ui paketi - tüm sınıfları ile takas edilecek yeni paneller oluşturmak ana çerçevenin içerik bölmesi Main.java (Ana Menü) -

bileşenleri içeren bir panel oluşturur. Şimdi, Ana sınıfın işlevini nerede yerleştirebilirim? Oyun sınıfında mı? Ayrı sınıf mı? Yoksa bütün organizasyon yanlış mı?

Teşekkürler

cevap

4

Her şeyden önce: Yaptığınız şeyin iyi niyetidir. Kodunuzu düzenli tutmaya çalışmak, programlamada size yardımcı olacaktır. Ama bunu akılda tutmaya çalışın: İyi kod geliştirmek, kaynak kodunuzun organize edilmesinin ve sınıflandırılmasının ötesine geçer. Örneğin ... herhangi bir UML Modeli kullanıyor musunuz? Herhangi bir tasarım deseni uyguluyor musunuz?

Tüm bu şeyler, iyi bir kod yazma sürecinde size yol gösterecektir, ki bu, bu noktada istediğiniz gibi görünüyor. Ve bütün bunların sonucu, kodunuzu organize etmeyi ve yönetmeyi kolaylaştıracak.

+4

Neden ihtiyacınız olduğunu bilmiyorsanız UML yapmayın. Mantıklı olmadıkça tasarım desenleri yapmayın. Kodu basit tutun, kodu temiz tutun, gerektiğinde refactor. – Kirill

+1

@Kirill: Sana tamamen katılıyorum. Yorumun için teşekkürler. – Cristian