Criar vários Controllers e DAO

9 respostas
leosjcti

Olá Pessoal. Estou com uma dúvida bem iniciante… rs

Estou precisando de uma força.
Tenho um sistema bem grande, que estou migrando do Clipper para Java. Estou tentando usar o o MVC + DAO, mas surgiu uma dúvida.

Na view estou utilizando o EXTJS da Sencha, até ai tudo bem…
A dúvida é: como minha parte de controller e DAO são muito grandes, eu posso separa-las em vários arquivos? tipo UsuarioAddContoller, Usuario ListarController,
UsuarioDAOListar, UsuarioDAOGravar, UsuarioDAOTrocaPlano

Posso fazer dessa forma? pois se fizer em um arquivo só… ficará muito grande.

Valeu pessoal

9 Respostas

Rodrigo_Sasaki

O que é muito grande pra você? Eu acredito que a classe tem que ter o tamanho que tem que ter.

Um DAO geralmente faz as operações CRUD, e talvez algumas a mais.

nel

leosjcti:
Olá Pessoal. Estou com uma dúvida bem iniciante… rs

Estou precisando de uma força.
Tenho um sistema bem grande, que estou migrando do Clipper para Java. Estou tentando usar o o MVC + DAO, mas surgiu uma dúvida.

Na view estou utilizando o EXTJS da Sencha, até ai tudo bem…
A dúvida é: como minha parte de controller e DAO são muito grandes, eu posso separa-las em vários arquivos? tipo UsuarioAddContoller, Usuario ListarController,
UsuarioDAOListar, UsuarioDAOGravar, UsuarioDAOTrocaPlano

Posso fazer dessa forma? pois se fizer em um arquivo só… ficará muito grande.

Valeu pessoal

O que é MVC + DAO ? Não vou nem entrar em detalhes, mas a ideia do MVC é dividir o desenvolvimento em camadas. O DAO é a camada responsável pela interação com as informações do banco. Tendo isso em mente e respondendo sua outra questão, muito grande quanto ? 300 linhas ? Tenho classes que passam das 1000 (mil) fácil. Acho interessante um DAO por informação, se estamos falando de usuário, então tem UserDAO e nele todos os métodos que precisa referentes ao usuário, listar, criar, editar, remover…

leosjcti

Digamos que passaria de 3000 linhas, pois todo SQL eu utilizaria essa DAO, e como o sistema tem várias consultas antes de gravar a classe DAO ficará muito grande mesmo. Minha duvida é em relação a organização do codigo, pois ficará dificil dar manutenção depois

nel

Acha 3000 linhas muito grande ? Sei.
Se tu dividir em métodos bem descritos, código edentado e documentado, pode ter certeza que a manutenção será simples. O DAO só para usuário teria 3000 linhas ?
Um DAO por “entidade” eu sou totalmente a favor, no máximo outro DAO visando relacionamento entre tabelas, por exemplo, mas jamais, um DAO que faça tudo.

Rodrigo_Sasaki

Concordo, eu acho que esse seu DAO pode estar fazendo coisas demais. A idéia de um DAO por entidade é uma boa para o que você quer.

leosjcti

Valeu pelas respostas…

Ficará grande porque eu costumo criar varias consultas para não ficar muito pesado o select na tabela inteira. Essa tabela tem mais de 70 campos. ( nao foi eu que criou)

Então eu teria vários metodos como esses: getPlano, getEndereco, getTitular, estou certo?

Me desculpe a dúvida nivel iniciante, mas é que uma coisa é vc estudar a teoria, outra é implantar na vida real. rs

Valeu pessoal

nel

leosjcti:
Valeu pelas respostas…

Ficará grande porque eu costumo criar varias consultas para não ficar muito pesado o select na tabela inteira. Essa tabela tem mais de 70 campos. ( nao foi eu que criou)

Então eu teria vários metodos como esses: getPlano, getEndereco, getTitular, estou certo?

Me desculpe a dúvida nivel iniciante, mas é que uma coisa é vc estudar a teoria, outra é implantar na vida real. rs

Valeu pessoal

Tá, mas calma. Tu consegue usar isso tudo separadamente ou tu busca o Plano, depois o Endereço, depois o Titular e ai junta tudo e usa ?
Veja, eu ja trabalhei com tabelas grandes (assim não) e só tive um campo que precisei remover porque era um blob, onde era armazenado bytes. Esse campo eu só buscar no select em casos especiais e só trazia um registro.

Tu precisa analisar tua necessidade. Tu vai criar um objeto com os 70 campos ou consegue “quebrar” isso ? Entende onde quero chegar ?
E em termos de select, prefiro deixar a cargo do banco do que juntar “pedaços” em código posteriormente.

leosjcti

Separado mesmo… alguns campos da view fazem requisições a essas informações, um combo busca os planos, outro campo busca endereço, outro o titular
tudo via eventos disparados pela view ao controller que por sua vez chama o DAO para pegar essas informações.
Em relação a tabela, vou dar uma estudada pra ver se tem como quebra-la em outras e dminui-la, pois esta muito grande mesmo.

Valeu brother…

rmendes08

leosjcti:
Separado mesmo… alguns campos da view fazem requisições a essas informações, um combo busca os planos, outro campo busca endereço, outro o titular
tudo via eventos disparados pela view ao controller que por sua vez chama o DAO para pegar essas informações.
Em relação a tabela, vou dar uma estudada pra ver se tem como quebra-la em outras e dminui-la, pois esta muito grande mesmo.

Valeu brother…

Se você tem a oportunidade de remodelar as tabelas do banco, não perca tempo e faça-o agora! Com certeza, uma tabela com mais de 70 campos deve ter muita redundância, aplique a normalização de dados, separando cada entidade e você vai ver que a própria aplicação ficará mais simples:

http://pt.wikipedia.org/wiki/Normaliza%C3%A7%C3%A3o_de_dados

Criado 4 de junho de 2012
Ultima resposta 4 de jun. de 2012
Respostas 9
Participantes 4