Dúvida quanto ao uso da interface + DAO + "tela"

5 respostas
A

Bom dia galera, estou lendo e procurando bastante mas quanto mais eu leio mais eu me atrapalho hehe;
Minha dúvida está em como acessar os métodos da interface ( se é que é isso que tenho que fazer );

A interface consiste em publicar os métodos que utilizarei correto ? Para que eu não acesse o meu DAO (por exemplo) diretamente na UI, então a minha classe DAO irá implementar os métodos da interface, certo ? e na "tela" como eu acesso estes métodos ? não posso instaciar uma interface... nem criar métodos static na interface,

Então onde é que eu me atrapalhei ? hehe

public interface ControladorPessoa {

        public boolean inserePessoa(PessoaN pessoa);

}
public class PessoaDAO implements ControladorPessoa {

      public boolean inserePessoa(PessoaN pessoa){
      //implemetação
      }
}
public class CadastroPessoaN extends javax.swing.JDialog{
           //? como acesso os métodos aqui ? não é correto instanciar o DAO é ?,  tenho a interface....
}

5 Respostas

Rodrigo_Sasaki

Não vou entrar no mérito da sua modelagem, se é correto acessar o DAO diretamente da “tela” ou não, mas para o uso da interface, você cria a variável com o tipo da interface, e instancia a classe concreta, assim:ControladorPessoa controlador = new PessoaDAO(); Parecido com o que você faz ao instanciar uma coleção List<String> lista = new ArrayList<String>();

A

Pocha! Muito obrigado, e isso porque assim eu terei acesso aos métodos publicados na interface porém com a implementação da classe concreta que eu intanciar certo !?

Rodrigo_Sasaki

Exato, essa é a ideia de programar para interface, e não para a implementação.

Se um dia você quiser/precisar mudar a implementação, tudo fica muito mais fácil.

Leia esse post do ViniGodoy, é muito explicativo.

raffamz

[RESOLVIDO]?

Abraço

A

[RESOLVIDO]

Criado 19 de outubro de 2012
Ultima resposta 19 de out. de 2012
Respostas 5
Participantes 3