Estou fazendo uma aplicação Swing com Hibernate, mas não sei ao certo como organizar meus pacotes e classes. Hoje eu tenho a seguinte estrutura
Pacote banco e dentro dela a classe BDProduto ( acesso ao banco de dados )
Pacote negocio e dentro dele a classe Produto ( minha classe de negócio )
Pacote Tela e dentro dele a classeTelaProduto ( interface com o usuário )
Me sugeriram criar uma classe para conter os actionsPerformed da classe telaProduto ( me pareceu bom )
Hoje, ao digitar o código de barras de um produto na classe telaProduto, ocorre uma verdadeira peregrinação:
TelaProduto --> Produto ( construtor com parâmetro ) --> BDProduto ( via Hibernate) --> Produto ( atribuindo as propriedades ) --> TelaProduto ( atribuindo TextField e Combos
Esta minha distribuição é adequada ??? Em cada classe eu crio uma instância de Produto ( quantos construtores sendo realizados !!! ). Não seria bom criar a classe de acesso ao banco como classe interna da classe de negócio ???
Na verdade o form instancia um objeto Produto e o DAO, para retornar um produto, também tem que instanciar um objeto Produto. Eu ainda cometia um erro de passar pela classe de negócio ( instanciando outro objeto ) chamando um método do DAO ( este último eu eliminei).
Não entendi. Porque alguém daria bronca em alguém aqui ???
Vi a mensagem na qual ele disse que singleton não prestava. Legal, mas porque não presta ??? Vários autores ( Bruce Eckel, Joshua Bloch etc …) indicam seu uso.
Continuo pedindo ajuda para melhor desenvolver meu projeto.
Esqueci de dizer que o que me motivou a usar singleton é no sentido de otimizar o código, evitando criar instancias do meu DAO o tempo todo. Esta preocupação relamente é razoável??? Li que factory e builder podem ser uma boa opção. O que acha ???
Tenho que admintir que me baseio em autores conhecidos, mas o fato de serem conhecidos realmente não implica que tem razão em tudo.
Factory faz parte da propria definição do pattern dao. Lembro de ter lido um artigo na developerWorks sobre boas praticas para DAO então dá uma procurada lá.
Entendi agora que era brincadeira. É que há dois dias da minha prova SCJP, meu senso de humor saiu correndo de mim, de tão nervoso que estou.
Vou dar uma olhada com calma nos links. Na verdade eu falei em DAO, mas me refeti às minhas classes de persistência que eu mesmo criei utilizando o Hibernate, ou seja, elas devem estar completamente fora do pattern DAO