Arquitetura em três camada

Olá pessoal. Gostaria que você me auxiliasse de como posso fazer meu sistema em tres camadas, sendo que a camada de interface já está pronta. Se tiverem algum sistema simples com essa arquitetura agradeço.

Talvez este tutorial do Framework Spring ajude:

http://www.springframework.org/docs/MVC-step-by-step/Spring-MVC-step-by-step.html

Esqueci de mencionar que a o sistema é desktop.

Sem problemas. Só depois que eu postei que eu vi que podia ser este o caso :slight_smile:

Atualmente eu sigo as seguintes regras para softwares desktop (no caso uso SWT):
-As classes de interface só têm os componentes gráficos
-Os componentes chamam ações (eventos) em classes isoladas
-Estes eventos (ações) manipulam as regras de negócio e mudam o estado da interface
-Toda lógica do sistema fica isolada nas classes de negócio, que por sua vez acessam DAOs para fazer a persistência dos dados

Espero que ajude.

Consulte a Mundo Java umeros 15 e 17, e dê uma lida em http://www.fragmental.com.br/wiki

christielencc,

no google você encontra muita coisa sobre MVC, a idéia é a mesma independente de ser desktop ou web, os exemplos que variam um pouco.

Atenção o pessoal ae de cima MVC não é 3 camandas, MVC é apenas um patter, prestem atenção no que vcs estao dizendo!!!

Essa discussão eu já tive um tempo atrás, MVC não pode ser classificado como um pattern apenas, ela é uma micro-arquitetura, pois envolvem diversos padrões de projeto e você pode construir um sistema inteiro se baseando apenas em MVC, sugiro que você dê uma pesquisada aqui mesmo no GUJ e leia mais sobre esse ponto de questionamento!

Essa discussão eu já tive um tempo atrás, MVC não pode ser classificado como um pattern apenas, ela é uma micro-arquitetura, pois envolvem diversos padrões de projeto e você pode construir um sistema inteiro se baseando apenas em MVC, sugiro que você dê uma pesquisada aqui mesmo no GUJ e leia mais sobre esse ponto de questionamento!

[/quote]

Tudo bem que o MVC não seja “apenas” um pattern, mas dai a vim dizer que é três camadas, no sentido da pergunta deste tópico, acho que não da né!!!

[quote=fredferrao]
Tudo bem que o MVC não seja “apenas” um pattern, mas dai a vim dizer que é três camadas, no sentido da pergunta deste tópico, acho que não da né!!![/quote]

Só dizer que MVC não é uma aplicação em 3 camadas, não ajuda de nada, praticamente.
Seria de bom grado, se tu explicasse então, de maneira coerente, à partir do teu ponto de vista o que venha a ser uma aplicação de 3 camadas.

[ ]'s,
Misael.

Imagino eu, na minha ignorancia, que o que o amigo que postou esse topico esteja querendo saber é algo como:

  • Applicação Cliente nas Estações (faz requisições p/ a app server)
  • Aplicação Server em uma maquina (recebe as requisições e acessa o BD e retorna o resultado p/ a app’s clientes)
  • SGBD em outra maquina (o BD em si)

Este seria um exemplo basico de 3 camadas, no meu entendimento, claro que posso estar enganado!!!

[editado]

Agora o MVC pode ser aplicado aqui?? Creio que sim, mas aquilo ali em cima é MVC, ja nao da pra dizer né!!

Ah sim, mas isso que tu falou, é uma aplicação em 3 camadas separadas fisicamente, nao!?

Mas precisam serem separadas fisicamente aplicações multicamadas?

Sob a minha visão, os caras separam o banco de dados dos servidores web por exemplo, para melhor o desempenho da máquina, não sobrecarregar o servidor.
Mas o acesso à tao banco de dados, não vai ser o mesmo? A única coisa que vai mudar, vai ser a url do banco.

Eu penso, que uma aplicação que usa MVC, pode ter até mais que 3 camadas.
Por exemplo, a camada VIEW, é a que o cliente verá, em uma aplicação web por exemplo, o resultado, o html.
O CONTROL, fará o encaminhamento do processamento, chamando objetos DAO, que implementem objetos MODEL.
Os objetos DAO, por sua vez, fazem a comunicação com o BANCO DE DADOS, que podem, ou não estar na mesma máquina, não diferenciará em nada a programação, apenas o desempenho.

A separação física de partes, acho que é promovida mais por desempenho mesmo.
Os eskemas de camadas, sob a minha visão, se dão através de separações lógicas, independemente de estarem numa mesma máquina, ou não…

Eu to entendendo o que vc ta dizendo, mas esse negocio de camadas fica froid entrar num acordo!

Agora as camadas que falei podem tambem ficar na mesma maquina, mas são aplicações diferentes, no que vc falou a separação é apenas logica ou organizacional, é tudo na mesma app, apenas o BD é separado, o teu exemplo eu chamo de cliente/server, que seria 2 camadas, mas a camada cliente usa MVC, e ai poderia dividir como vc disse!!!

Fred,

Você está certo em grande parte. MVC não diz nada sobre Camdas mas cuidado: MVC é um Padrão tanto quanto Camadas.

MVC não quer dizer Camadas, Camadas não quer dizer MVC. MVC diz como componentes colaboram, se são Camadas, POJOs ou carrinhos hotwheels não importa.

Camadas indica separação por responsabilidades comuns. Se obedecem MVC, se são push, se são pull, se todo mundo observa todo mundo (conhecido nas rodas de samba como “the Voyeur Anti-Pattern”)… não importa.

Misture os dois e você tem uma estrutura estática (Camadas) e o comportamento dinâmico entre elas (MVC).

Note que os frameworks MVC (Struts, Mentawai, WebWork, JSF…) geralmente estão localizados dentro da Camada de Apresentação.

Camadas Lógicas são diferentes de Camadas físicas… consultem a literatura que citei ou vou acabar reescrevendo o artigo aqui :?