DAO - Dúvidas, dúvidas e mais dúvidas

Bom dia, sou novo nos design patterns, mas me deparei com o DAO. vou tentar explicar um pouco a estrutura que “aprendi” mas não consigo implementar realmente.

Vamos la.

br.com.clientes.Clientes
método que implementa o DAO.

br.com.clientes.ClientesFactory
método que escolhe a conexão com a base conforme minhas configurações

br.com.clientes.ClientesDAOMySQL
classe com a conexão com o banco de dados mysql, consiste dos métodos adicionar, remover.

br.com.clientes.ClientesDAOSQLServer
classe com a conexão com o banco de dados SQL Server,consiste dos métodos adicionar, remover.

br.com.clientes.ClientesDAO
Interface de acesso a dados, consiste dos métodos adicionar, remover.

Sei que a classe Clientes vai chamar a classe ClientesDAO, para me retornar uma conexão válida, conforme minhas configurações… masssss
como eu sei que método ele vai usar o método adicionar do MySQL por exemplo…me perco totalmente nisto…

Alguém poderia me ajudar com isso…
Agradeço desde ja…

ClienteDAO dao = new ClienteDAOMySql(); dao.remover(cliente);

ClienteDAO dao = new ClienteDAOSqlServer(); dao.remover(cliente);

No primeiro exemplo, será executado o método remover referente ao MySQL, e SQLServer no segundo exemplo.

Se eu entendi bem sua pergunta, não existe mágica. É polimorfismo.

Então o que seria esse parâmetro cliente? seria o objeto da classe Clientes?

sim!

Então para implementar eu teria que realizar isso por exemplo.

public Class TestClientes{

public static void main(String[] args){

Clientes clientes = new Clientes();
clientes.setNome(“NOME”);
clientes.setIdade(15);

ClienteDAO dao = new ClienteDAOMySql();
dao.remover(clientes);

}
}

e no método remover da classe ClientesDAOMySQL eu teria então que fazer cliente.getNome();
para recuperar o valor do campo digitado?

Consegui… obrigado pela ajuda ae…