Avatar billede madiedk Nybegynder
02. september 2008 - 00:42 Der er 4 kommentarer og
1 løsning

Design spørgsmål

Hej

jeg sidder og roder med java er er i tvivl mht. hvordan et program med f.eks. gui skal designes. spørgsmål:

1. Skal alt guien være i en klasse eller hvordan er "god kode" eller regler for at dele det op i flere klasser

2. Jeg har 3 klasser nu. "Database", "Application" og "Gui"
i programmet kan man skrive nogle ting i nogle jtextfield og klikke på en knap og så bliver de ting opdateret eller ændret i databasen. hvor skal alt den kode være? i hvilke klasse? og hvilke klasser skal oprette objekter af hinanden?

2.1. nu er det sådan at når man klikke på en knap så bliver der fyret en metode af i gui klassen. den metode indeholder som reglen bare en linien, nemlig en reference til en metode i Application-klassen som så laver arbejdet. det bliver gjordt ved at have oprettet et object af applications klassen i gui-konstruktøren. er det måden?
Avatar billede arne_v Ekspert
02. september 2008 - 02:27 #1
re 1)

Alt GUI bør koncentreres i en eller flere klasser som kun er GUI.

Om det er en eller flere afhænger af stor din GUI er.
Avatar billede arne_v Ekspert
02. september 2008 - 02:31 #2
re 2)

Over tid vil de 3 klasser nok vokse til 3 packages med flere klasser i hver.

:-)

GUI = Presentation Layer
Application = Business Logic Layer
Database = Data Access Layer

lyder umiddelbart ikke helt ved siden af.
Avatar billede usse Nybegynder
08. september 2008 - 14:34 #3
Jeg lavede engang et projekt hvor vi havde en rimelig stor gui, derfor valgte vi at arbejde med panels efter forskellige bruger niveauer.. Her er nogle udtag eksempler derfra, kunne godt være det kunne give lidt inspiration..

---- GUI ----
public abstract class MainView extends JFrame 
{
    protected ActionListener     al;
    protected JPanel     controlPanel;
    protected JPanel             viewPanel;
    protected JPanel             infoPanel;
   
    public MainView()
    {
        setSize(800, 800);
    }
   
    public abstract void setViewPanel(JPanel viewPanel);
   
    public abstract void setControlPanel(JPanel controlPanel);   
   
    public void updateDisplay(JPanel panel)
    {
    }
   
    public void updateInfoPanel(JPanel panel)
    {
    }   
       
    public JPanel getViewPanel()
    {
        return this.viewPanel;
    }   
   
    public JPanel getControlPanel()
    {
        return this.controlPanel;
    }
   
    public JPanel getInfoPanel()
    {
        return this.infoPanel;
    }   
   
    public JFrame getFrame()
    {
        return this;
    }       
}
--- GUI, her er et eksempel kun på panels tilhørende admins
public class AdminPanels extends JPanel implements ActionListener
{
    private EventController ec;
    private AdminController controller;
       
    public AdminPanels(EventController ec)
    {   
    }
   
    public void setStyle(String name)
    {
    }       
   
    public void showEmpAdd(String[] workTypes, String[] hospitals)
    {
        }
}
----- Model, Controlleren
public class AdminController
{
    private EmployeeActions employeeActions;
   
    public AdminController() throws Exception
    {
        employeeActions     = new EmployeeActions();
    }
       
    public String addEmp(List list)
    {
    String empAdded = employeeActions.addEmp(list);
    return empAdded;                
    }   
}

--- Model, tilgang til Tech laget, Databasen via singleton
public class EmployeeActions
{
    private DBSQL dbsql;

    public EmployeeActions()
    {
        dbsql = DBSQL.getInstance();
    }
   
    public String addEmp(List list)
    {
}
---
Avatar billede madiedk Nybegynder
14. september 2008 - 13:51 #4
jeg begynder at læse nogle bøger om design patterns, specielt MVC model tror jeg. men tak. smid et svar begge så deler I
Avatar billede arne_v Ekspert
14. september 2008 - 14:38 #5
svar fra mig
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester