Saldações companheiro, vou tentar te ajudar…
Quando você faz uma interface esta estabelecendo um “contrato”, ou seja…
Quem implementar a interface, vai ter que seguir as suas especificações…
Isso garante o baixo acoplamento de seu sistema…
Agora… Porque utilizar isso? Como se utilizar?
Imagine a seguinte interface:
public interface IPessoaDAO {
public abstract void save(Pessoa pessoa);
public abstract void update(Pessoa pessoa);
}
O que este contrato estabelece?
Ele estabelece que o essencial para garantir a persistencia da minha classe Pessoa sejam “servido” os metodos save e update…
Agora o segredo esta em: Como estes metodos serão implementados?
R: Não preciso saber… só tenho que saber que quem for me “atender” (quem sera instanciado) servirá esta especificação…
Eu posso ter n classes que implementem IPessoaDAO…
O que me importa é que elas serão obrigadas a me fornecer os metodos especificados…
Com isso é possivel usar Injeção de dependencia…
uma estratégia muito boa…
Espero que tenha ajudado…
Att