none
Desenvolver para Interfaces RRS feed

  • Pergunta

  • Muito ouco sobre desenvolver para interface ao inves de implementacao.

    Por ex:
    Se minha Classe Dog herda da interface Animal.

    Animal animal = new Dog();

    Mas qual a diferenca para:
    Dog dog = new Dog() ?

    Quais sao as vantagens ?

    Abracos

    segunda-feira, 9 de março de 2015 15:04

Todas as Respostas

  • Boa tarde Neto,

    Seguinte, há uma série de benefícios e complexidades em se desenvolver para interface e não para implementação.

    Mas a grande diferencia é que desenvolver para interface vc passará a criar um baixo acoplamento do seu sistema, sendo que se daqui algum tempo você precise crescer o sistema e trocar métodos e projetos, você não precisa mexer nas camadas que chamam sua classe, basta apenas trocar a implementação da sua interface e todo o seu sistema continuará funcionando normalmente, sem falar que a interface obriga você a implementar os métodos obrigatórios para funcionar.

    Outra vantagem você consegue separar equipes para lidar com trabalhos diferentes, por exemplo, uma equipe desenvolvendo front-end e uma equipe back-end, a equipe de front-end não fica refém da equipe back-end para fazer as classes que utilizarão, basta criar a interface e a equipe de front trabalhará normalmente e a equipe de back-end se preocupará apenas em criar a implementação das interfaces que estão sendo utilizadas pela equipe de front sem um atrapalhar o trabalho do outro.

    Vou deixar alguns links aqui que ajudarão vc a entender melhor:

    https://msdn.microsoft.com/pt-br/library/3b5b8ezk%28v=vs.90%29.aspx?f=255&MSPPError=-2147217396

    http://www.guj.com.br/java/235931-resolvido-qual-a-vantagem-de-usar-interfaceimplements-

    Uma pesquisa rápida você encontra muito material sobre esse assunto.

    Espero ter ajudado.

    Abraços

    • Sugerido como Resposta Murilo Neandro quarta-feira, 11 de março de 2015 12:06
    segunda-feira, 9 de março de 2015 15:24
  • O conceito de programação para interface não é algo novo, já existe há algum tempo. Tomemos como exemplo o padrão DAO (Data Access Object): primeiro, crio minha interface AlunoDAO, em seguida incluo os métodos que deverão ser implementados pela classe AlunoDAOImpl, como por exemplo:

    void cadastrarAluno(Aluno aluno);

    void excluirAluno(Aluno aluno);

    ...

    Os métodos citados a cima devem ser declarados na Interface AlunoDAO.


    Atenciosamente, Marcio Nogueira Cardoso Pinto.

    segunda-feira, 9 de março de 2015 15:29