Duvidas de connection

olá galera !!!
estou iniciando no java como muitos ai !!!
venho mais uma vez pedir ajuda a voces, preciso que me expliquem uma coisa apesar de ser bem basico mas nao estou compriendendo, eu precisaria de uma mao de voces ai .
bem ja fiz pesquisa na net e nao tive esclarecimento nenhum, acho que ate me complicou mais !!!

é o seguinte, tenho um DAO e preciso passar a conexao pra ele .
para isso eu criei uma classe chamada connection factory aqual ira criar a conexao da qual eu irei precisar para passar para o meu dao !

legal !
o problema é o seguinte agora eu nao compriendo como ligar as arterias do negocio, sei que preciso criar metodos no dao e no connectionfactory que passem e receba essa conexao .

a questao é apenas uma : - como ?
essa é minha classe dao :

public class ContatoDAO extends ConnectionFactory {

public List<Contato> getLista() {
	try{
		List<Contato> contatos = new ArrayList<Contato>();
		PreparedStatement stmt = this.connection.prepareStatement("select * from contatos");
		ResultSet rs = stmt.executeQuery();
		
		while(rs.next()){
			Contato contato = new Contato();
			contato.setNome(rs.getString("nome"));
			contato.setEmail(rs.getString("email"));
			contato.setEndereco(rs.getString("endereco"));
			
			Calendar data = Calendar.getInstance();
			data.setTime(rs.getDate("dataNascimento"));
			contato.setDataNascimento(data);
			
			contatos.add(contato);
		}
		rs.close();
		stmt.close();
		return contatos;
	}catch(SQLException e){
		throw new RuntimeException(e);
			
		
		}
	}
}

e essa é minha classe connection factory :

public class ConnectionFactory {
public Connection getConnection(){
System.out.println(“conectado ao banco”);
try{

		return DriverManager.getConnection("jdbc:mysql://localhost/contato","root","root");
	}catch(SQLException e){
			throw new RuntimeException(e);
		}
	}
}

estou indo no caminho certo ou esta tudo muito errado ?

agradeceria algum tipo de orientação !!!
grato a todos !!!

Bem ta indo nao ta indo bem so uma coisa faz o seguinte vc não precisa extender de connectionFactory, lhe dou a dica do seguinte procure como fazer uma classe singleton pra fazer a conexão dai na sua classe DAO voce vai pegar a instancia criada dessa connectionSigleton por exemplo entendeu?

[code] public final class Singleton {

  private static Singleton me = new Singleton();   
     
  private Singleton(){} // construtor privado, impede que seja instânciado fora da própria classe   

  public static Singleton getInstance(){   
       return me;   
  }         

   //métodos do objeto   

}
[/code]

qualquer duvida http://www.guj.com.br/posts/list/133252.java#717298

e outra coisa quando postar codigos coloque entre code =)