Olá.
Eu tenho uma aplicação em um computador, que interage com um equipamento. Nessa aplicação 3 threads. Uma insere as configurações do equipamento (recebida de um servidor via WebService) no banco. Uma thread pega essas informações e usa pra configurar o rquipamento e receber respostas dele, essas respostas são colocadas num banco. E uma terceira thread que lê essas respostas do banco e manda de volta pro servidor (Web Services).
Atualmente essa aplicação tem 2 classes que manipulam o banco. Uma classe Operation, que é um Singleton, que gerencia a conexão e faz os inserts, updates e deletes. E uma classe Query que usa a classe Operation para pegar a conexão e relaizas as queries (Selects).
Eu vou atualizar isso. Implementar o padrão DAO. As classes DAO não são um grande problema, já tenho a divisão delas bem formadas na minha cabeça. Meu problema são os seguintes:
Primeiro, conexão com o banco. Eu pensei em criar uma classe ConnMAnager (Singleton) que inicializa o banco (cria as tables, caso não existam, e sim isso é necessário) conecta, e devolve a conexão através de um método estático. É a melhor solução? Ou deveria fazer uma ConnectionFactory e devolver uma conexão nova? (O banco que eu uso é o postgresql e é threadsafe).
Segundo: Em relação ao uso dos DAO. Eu devo na chamado dos métodos criar um novo DAO ? Ou criar uma instancia do DAO para a classe e inicializar no contrutor? OU ainda, fazer os DAO Singleton?
A parte do uso dos DAO é a maior dúvida. O código de cada um tá bem pensado, o uso é que me confunde.