Não entendi isso bem, e gostaria de saber se alguém pode me explicar essa aplicação de interfaces em softwares orientados a objetos . Obrigado!
Não entendi isso bem, e gostaria de saber se alguém pode me explicar essa aplicação de interfaces em softwares orientados a objetos . Obrigado!
Olá Tibério, tudo bem com você?
Então, não sei se você pegou o conceito de interface como sendo um palavra, ou como sendo de fato uma estrutura do Java
Um ponto importante é que não é bem uma limitação do Java, inclusive James Gosling, um dos criadores, disse que se tivesse mais tempo para construir, ele teria até retirado o conceito de herança
Mas voltando a sua questão, em java o comum é criarmos varias interfaces que ditam os protocolos que elas devem seguir
public interface BaseRepository {
boolean adicionarEntidade();
boolean removerEntidade();
Integer contarEntidade();
}
public interface Auditavel {
String gerarRelatorio();
}
E dentro das nossas classes podemos implementar
múltiplas interfaces:
public class UserDatabase implements BaseRepository, Auditavel{
@Override
public String gerarRelatorio() {
return null;
}
@Override
public boolean adicionarEntidade() {
return false;
}
@Override
public boolean removerEntidade() {
return false;
}
@Override
public Integer contarEntidade() {
return null;
}
}
A utilização é bem simples, garantimos a uniformidade das classes que decidem implementar a interface, e além disso, podemos utilizar do polimorfismo e ter um método por exemplo
public class BaseController {
private BaseRepository repository;
public BaseController(BaseRepository repository){
this.repository = repository;
}
}
Neste caso eu posso passar para o meu controlador tanto um UserDatabase
, quanto um CategoriaDatabase
, ou qualquer outro :)
Conseguiu Compreender?
Abraços e Bons Estudos!