Por que criar tanta interface na parte de persistência desse sistema (curso de java web)?

Olá,

Pessoal, estou fazendo o curso do link abaixo e não entendi porque o autor criou tanta interface na camada de persistência.
Eu já tentei contato com o autor mas ele não está respondendo.

Eu sou novo no mundo web Java.

Parte do curso que eu questionei: http://www.codigosfontes.com.br/persistencia-dos-dados-com-hibernate-e-spring-parte-1/

Grato pela atenção.

É cara, tem gente que infelizmente usa Interface só para brincar de TI. O importante é você entender o conceito e usar só quando necessário para atender bem a realidade da evolução do seu projeto, e não por moda ou porque “talvez futuramente mude tal coisa” ou “talvez futuramente precise de um comportamento diferente para o mesmo tipo de funcionalidade”. A mais clássica falácia é “se precisar trocar de ORM”.

É, eu ainda não entendi a lógica por trás da camada ORM em java web.
Essa parte ainda está complicada.

Por exemplo, se eu for fazer uma analogia com JDBC eu não sei o que comparar com o que. Entende?
Por isso, está complicado pra mim.

[quote=guj1]É, eu ainda não entendi a lógica por trás da camada ORM em java web.
Essa parte ainda está complicada.

Por exemplo, se eu for fazer uma analogia com JDBC eu não sei o que comparar com o que. Entende?
Por isso, está complicado pra mim.[/quote]
Estude as coisas separadamente. Em relação a orientação a objetos, estude sobre Interface. Sobre ORM estude Hibernate isoladamente, sem misturar com outras coisas como criação de Interface.

Sobre analogia, Hibernate só facilita o que você fazia na mão de forma repetitiva puramente com JDBC + OOP + Banco de dados relacional.

Quanto às interface está tranquilo. :slight_smile:
Eu só não entendi pq ele usou tanta interface nessa camada.

Quanto ao uso de uma interface eu sei quando usar. Mas eu acho que ele poderia ter usado somente uma interface, não?

[quote=guj1]Quanto às interface está tranquilo. :slight_smile:
Eu só não entendi pq ele usou tanta interface nessa camada.

Quanto ao uso de uma interface eu sei quando usar. Mas eu acho que ele poderia ter usado somente uma interface, não?[/quote]
Poder pode, pra fazer sentido depende do que você precisa atender, o exemplo dele é genérico, não atende algo específico. Se num determinado ponto do projeto não tenho a necessidade de me preocupar com um acoplamento, não faço uso de Interface, senão a coisa se torna apenas burocrática.

Parece que o autor quer demonstrar o uso de interfaces mas escolheu um exemplo equivocado pra isso, porque no mundo real nunca vi necessidade de reduzir acoplamento com o banco.

De qualquer maneira o link é de 2012. Não tem um curso mais recente?

Concordo, quando acontece troca é mais erro de projeto. Claro que tem casos de multi banco mesmo, mas próprio Hibernate cuida da maioria das necessidades. O que já vi de uso real de Interface foi onde um sistema se comporta diferente ao ser executado totalmente offline ou online.