Camadas em JAVA

Hey Amigos,

Estou participando do meu primeiro projeto em JAVA e fiquei contente por poder aprender mais uma tecnologia. Minha duvida de hoje é como funciona a divisão de camadas em JAVA? Em um contexto simples de 3 camadas(DADOS,NEGOCIO e USUARIO) por exemplo, no .NET por exemplo usaria algo assim:

Tenho um projeto para camada de DADOS que gera uma DLL;
um projeto para NEGOCIO que gera outra DLL, no projeto de NEGOCIO tenho uma referencia para DADOS;
um projeto de WEB(por exemplo) que referencia a DLL de NEGOCIO;

Em JAVA como que fica isso? Cria um package para cada camada? Ou criaria um PROJECT e faria a referencia de um projeto para o outro?

Dei uma olhada na net antes de escrever é parece que o pessoal usa a package mesmo, mais nao tenho certeza.

Alguem pode me ajudar?

Há algumas possibilidades.
Você pode criar projetos separados para cada camada e, exportar o jar pronto, colocando-o como dependência da próxima.
Pode criar apenas um, com pacotes distintos e fazer referência direta.
E escolher a tua própria forma de fazer isso… Usando um framework pronto ou na unha mesmo.

estou acostumado a utilizar os packages para separar as classes por exemplo modelo, controller, daos, etc.

mas já vi um projetão ter outros projetos e cada um desses representava uma camada.

att,

Geralmente se cria pacotes.
Mas esses pacotes podem ser usados em diversos projetos.

Você pode criar um pacote para persistência de dados que seja usado em qualquer projeto.
Pode também ter um pacote que contenha todas as classes de entidades, e adiciona-lo a qualquer projeto chamando nos imports apenas pelas classes necessárias para tal projeto.

[quote=pedruhenrik]estou acostumado a utilizar os packages para separar as classes por exemplo modelo, controller, daos, etc.

mas já vi um projetão ter outros projetos e cada um desses representava uma camada.

att,[/quote]
Eu também prefiro os packages, porém, como presto serviço para uma empresa cuja arquitetura é fechada, eles exigem que cada camada seja um projeto.

P.S.: Bacana tua frase, Matanza é uma das poucas bandas que apreciei depois dos Raimundos…

[OFF POST TOTAL]

\o/

pois é! órfãos de raimundos heheh.

[/OFF POST TOTAL]

Legal, obrigado pelas respostas!

Mais se usar package, não fica um pouco dificil de entender o que é camada?

Os package ficariam assim se usar mvc também por exemplo:

br.com.projeto.model
br.com.projeto.controller
br.com.projeto.negocio
br.com.projeto.dao

Fica meio que para o desenvolvedor ter o conhecimento logico do que é camada e tal, será que nao é dai que vem o problema de mvc ser confundido com arquitetura de camadas?

[quote=Mrizzo]Legal, obrigado pelas respostas!

Mais se usar package, não fica um pouco dificil de entender o que é camada?

Os package ficariam assim se usar mvc também por exemplo:

br.com.projeto.model
br.com.projeto.controller
br.com.projeto.negocio
br.com.projeto.dao

Fica meio que para o desenvolvedor ter o conhecimento logico do que é camada e tal, será que nao é dai que vem o problema de mvc ser confundido com arquitetura de camadas?[/quote]

Não se o programador conhece conceitos de Padrões de Projeto.