Duvida quanto ao fluxo na arquitetura

Seguinte,
Estou fazendo alguns teste para o projeto de uma aplicação WEB e surgiram algumas dúvidas quanto ao fluxo de informações, classes de conexão e Beans.

Inicialmente, tenho a seguitne estrutura:

  • Página Html com o form com seguintes campos:
    _Campo texto id (oculto)
    _Campo texto descricao
    _Campo texto valorCusto
    _Campo texto valorVenda
    _Campo texto dataInclusao
    e action para CtrProdutos;

  • Servlet CtrProdutos que recebe as informações da html acima e identifica se ela tem id ou não. Caso ela tenha id o CtrProduto cria uma HashTable com os dados passando como parâmetro para o metodo update da classe ProdutoDAO que faz o update no banco, e caso ela não tenha id, o CtrProduto cria uma HashTable com os dados passando como parâmetro para o metodo insert da classe ProdutoDAO que faz o insert no banco;
    Obs.: O campo id do BD é um campo numérico de auto_incremento

  • Classe ProdutoDAO possui acesso aos SQLs que fazem a manipulação (inserção, alteração, exclusão e pesquisa) dos Produtos no BD e implementa a classe abstrata DAO.

  • Classe Produto com alguns atributos como id, descrição, valorCusto, valorVenda, dataInclusao com gets e sets e um construtor com todos os parâmetros.

-Tenho também uma classe ConnectionBens que faz a conexão com banco de dados controlando as connection abertas (Número de connection, …)

-Tenho uma classe abstrata DAO que tem dois métodos sincronizados principais: update e inserte responsáveis por executar todos os updats e inserts da aplicação. Ela também tem dois métodos abstratos chamados inserir, alterar e excluir.

 Em uma dessas aulas da vida um professor disse que a class Produto que deveria ser especializada nos produtos (claro  :lol: ) teria todos os métodos de instância como gets e sets e mais os metodos de classe tipo o meu ProdutoDAO. Na verdade acho que seria a junção dos dois.

 Já estudei bastante sobre MVC sendo que tenho bem definido seus conseitos. Mas agora na hora de apolicá-los estou tendo um pouco de dificuldade.

Obs.: Não estou usando nenhum tipo de framework pois gostaria de primeiramente descobrir o caminho das pedras pra depois ir simplificando (Algo tipo saber exatamente de onde vem, o que faz e pra onde vai).

Acho que isso dá pra ter uma idéia da maluquice, mas qualquer pergunta, fiquem a vontade.
Gostaria e sugestões, opiniões, críticas, resumindo, tudo o que puder ajudar a melhorar isso pra começar a aplicação já de maneira correta.

Valeu

Acho que o que você precisa é de um exemplo simples e completo. Dê uma olhada em
http://java.sun.com/developer/releases/petstore/

Obs: Por favor, tente resumir suas mensagens. Seja mais objetivo. :wink:

“Desconcordo” com voce vamorim (nao eh perseguicao nao - lembra do lance do XML? :lol:)… uma mensagem objetiva como essa e bem explicada eh melhor de ler do que aquelas mensagens do tipo “Meu servlet nao funciona, alguem saber dizer o por que?”… :smiley:

Bom, mas quanto a questao do colega, acho que a afirmacao do seu professor esta correta - esse eh um dos principios da OO: objetos que encapsulam dados e operacoes proprias (diferente do modelo estrutural, em que os dados sao encapsulados mas as operacoes ficam “soltas”, digamos assim).

O padrao DAO por sua vez visa isolar as operacoes relacionadas com acesso a fontes de dados (banco de dados, p.ex.), devido as tradicionais questoes de manutencao, organizacao, desacoplamento de camadas, etc.

Acho que o lance eh encontrar o ponto de equilibrio. O PetStore, que o vamorim recomendou, eh um bom ponto de partida para estudar esses padroes de projeto. Eh um dos “blueprints” da Sun.

Mas pelo que voce descreveu acima da sua arquitetura eu achei que esta tudo “conforme manda o figurino”. :smiley:

Sobre MVC da uma pesquisada no forum - tem bastante info util sobre isso.

Marcio Kuchma