Desenvolvimento de sistemas desktop

10 respostas
S

Comecei a estudar interface gráfica, estou tentando desenvolver alguns aplicativos desktop.
Ja estudei poo, classes , herança, composição, e tudo mais…
Minha duvida é a seguinte a partir que começo a usar jFrames , JDialog e demais componentes
não consigo visualizar a aplicação de poo, ou seja, as classes com informações básicas e seus métodos
não consigo relacionar com os frames. Desenvolvo o código dessas classes , nas próprias classes jFrames ,
jDialog … , isso é maneira correta ?

10 Respostas

Andre_Brito

Desenvolvo o código dessas classes , nas próprias classes jFrames , jDialog ... , isso é maneira correta ?

Cara, eu particularmente acredito que não.
Vem o conceito de design dirigido por responsabilidade, acoplamento e coesão. Acoplamento é você fazer o código de modo que você possa alterar uma classe sem ter que mexer em outra. Coesão é você colocar os dados e métodos somente na classe que é respomsável por tratar eles.

Eu faria um conjunto de classes p/ o programa geral (a lógica dele mesmo). Até mesmo sem a função main.
Depois faria a interface gráfica e depois faria uma controladora, que vai definir a direção do teu programa.

Eu faria assim.
Acredito que esteja correto fazer da minha forma de maneira que a manutenção do código sempre tornará mais fácil.
Caso alguém ache que eu esteja falando alguma besteira, por favor, me corrija.

Abraço.

A

Concordo com o amigo acima!!!
Verifique se estes 2 pontos te ajudarão!!!

Você está utilizando projetos diferentes?
Se sim, precisa relacioná-los.

Se não,
Você conferiu os imports?

ciczan

Se você le em ingles baixe o Sample Chapter desse livro:

http://www.sourcebeat.com/books/desktopjavalive.html

lá são apresentados padro~es de projetos com exemplos de como resolver o seu preblema.

S

Então eu posso fazer a parte visual usando os jframes e jdialog, tratando nela os eventos.
Em outra parte as classes com entidades … e no caso as classes de controle seria a parte
de jdbc ??? alguma dica?

S

???

diego2005

Dá uma pesquisada sobre MVC…

T+

Andre_Brito

Dá uma pesquisada sobre MVC…

T+

Falou tudo.

Então eu posso fazer a parte visual usando os jframes e jdialog, tratando nela os eventos.
Em outra parte as classes com entidades … e no caso as classes de controle seria a parte
de jdbc ??? alguma dica?

Sim, na verdade você deveria deixar banco de dados, interface gráfica e o controle todos separados, para que algum dia você possa reutilizar esse código. Com isso não existiria acoplamento, mas isso é impossível de se fazer.
Deixe tudo o mais separados possível.

Ps:
MVC = Model Vision Controller.

Aí tem tudo.
Abraço e bom trabalho.

S

Certo, separei o projeto por camadas - visual, regra de negócio e a persistência;
Andei lendo a respeito do padrão MVC, mas gerou dúvidas a respeito de sua aplicação no projeto que
esta separado por camadas. Seguinte o MVC é um padrão de controle certo?, no netbeans, na própria
frame gera o tratamento de eventos , ex :

myButton.addActionListener(new java.awt.event.ActionListener.ActionListener() {
            //esse listener vai ser executado quando clicar no botao "myButton"
            public void actionPerformed(java.awt.event.ActionEvent.ActionEvent e) {
                  //chamar o seu controler
            }
        });

No caso o que viria a ser essa chamada do controller e como ele se relaciona com a model ?
A model seria também a regra de neçócio ?

PcAbrantes

ai viria uma chamada a uma classe intermediaria… nesta classe existira um metodo que ira chamar a o metodo que esta na camada de persistencia pra fazer a comunicaçao com o bd… seria +/- o seguinte:

myButton.addActionListener(new java.awt.event.ActionListener.ActionListener() {
            //esse listener vai ser executado quando clicar no botao "myButton"
            public void actionPerformed(java.awt.event.ActionEvent.ActionEvent e) {
                  //chamar o seu controler
                  Controler.buscar(param1, param2);
            }
        });
public abstract class Controler {
      
       public static void buscar (Object param1, Object param2) {
             //aqui vc faz o tratamento do param1 e param2
             Persistencia.buscar(); //chamada ao metodo correspondente na camada de persistencia
       }
}
S

Grato pelos esclarecimentos

Criado 25 de outubro de 2007
Ultima resposta 27 de out. de 2007
Respostas 10
Participantes 6