Camadas em aplicações DESKTOP

5 respostas
M

Pessoal,

Pretendo desevolver um aplicação Java Desktop usando arquitetura em camadas. A arquitetura que eu propus para o projeto foi a seguinte :

Camada de APRESENTAÇÃO
Será desenvolvida usando-se as APIs Swing/AWT e a IDE Netbeans(exigência do projeto). Framworks de apresentação não serão utilizados, não num primeiro momento

Camada de NEGÓCIOS
Será desenvolvida usando-se todos os recursos disponíveis na linguagem JAVA e em suas principais APIs.

Camada de PERSISTÊNCIA
Será desenvolvida usando-se a API JDBC. Framworks de persistência não serão utilizados, não num primeiro momento.

O que penso em fazer na camada de APRESENTAÇÃO :

1o - Crio a GUI usando Swing, em geral uma classe para cada JFrame
2o - Em cada uma destas classes, crio um atributo privado para cada componente GUI
3o - Crio métodos set para atribuir a cada atributo da classe o conteúdo capturado do componente GUI a ele associado
4o - Uma vez que todos os atributos tenham sido "setados", efetuo as validações de dados inerentes a esta camada
5o - Se as validações não lograrem êxito, a aplicação continua rodando até que os dados sejam validados
6o - Validados os dados, crio o objeto da camada de apresentação  com esses dadaos validados
7o - Com isto, finalmente crio o objeto da camada de negócio a partir do objeto da camada de apresentação com dados válidos.

A lógica supracitada também deverá ser utilizada, com os seus devidos ajustes, nas camadas subsequentes.
Gostaria de saber o que vocês mais experientes em Java acham desta sequência do que deve ser feito na camada de Apresentação ?
Espero obter críticas construtivas não  à proposta de arquitetura, como à sequência de ações a serem feitas em cada camada.
Agradeço demais qualquer ajuda que me for enviada, pois ela será de grande valia para mim.

[]'s
Max

5 Respostas

rdgms

Aew!!!
então de uma lida nesse tutorial:

O da sun… acho que umpouco sem didatica mais ta ai:
http://java.sun.com/products/jfc/tsc/articles/architecture/

fantomas

Percebi aque vc não quer utilizar nenhum tipo de framework nas partes que vc citou.

Se isto for verdade, vc poderia dizer por que?

Para criticar a arquitetura teria que saber um pouco mais sobre o projeto, algumas vezes client x server resolve bem o problema.

Sobre a sequencia que vc descreveu acho que faltou mencionar alguma coisa sobre patterns, neste caso, o MVC e certamente alguns outros.

flws

H

Sem estamos falando de aplicação Swing, um bom pattern seria o MVP (Model-view-Presenter)
tem aconselho a dar uma olhada.

Ednelson

Se vc vai construir suas guis no Netbeans, presumo que vai usar o matisse para faze-lo visualmente. Caso isso aconteça sugiro usar o framework de binding(implementação de referência da JSR 295), pois este promove o desacoplamento de sua view do modelo desta e tem uma integração muito boa com o matisse. Sugiro ainda uma olhada em algum RCP pra Swing(Implementação de Referência da JSR 296, NetBeans Plataform… ) pois estes camaradas fazem um monte de trabalho pra vc. Sugestão de alguém que trabalhou por dois anos em um sistema desktop, quando nao havia estes recursos.

D

Fala cara,

Dá uma pesquisada no pattern “Presentation Model”. Ele fornece uma maneira bem interessante de separar o código de GUI do código de negócio.

Também dê uma olhada nesse link aqui:
http://www.componenthouse.com/articles

O dono desse site, Hugo Teixeira, já trabalhou comigo e é fera. Ele tem uns artigos muito interessantes sobre o Presentation Model e sobre GUI em java em geral.

Criado 5 de novembro de 2008
Ultima resposta 5 de nov. de 2008
Respostas 5
Participantes 6