Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Utilidade de interface

Sempre gosto de escrever as definições das coisas com as minhas palavras.

É correto dizer que uma interface ajuda a amarrar as regras de negócio de um programa? Assim como um construtor amarra os atributos que precisamos colocar na instância?

Estou certo ou é abobrinha? kk

2 respostas
solução!

Fala Ian, tudo certo?

Perfeito, a interface ajuda a amarrar as regras de negócio, mas com um adendo, a interface ajuda a amarrar a definição de comportamentos que uma classe ou grupo de classes precisa implementar. É um contrato, que na verdade não se preocupa muito com a regra de negócio mas sim com o tipo de comportamento que quem a implementa deve ter. É importante lembrar que se uma interface definir o método logar(), é obrigatório uma classe que a implementa, implementar o método logar(), no entanto essa interface não sabe a implementação, nem se preocupa com as regras de negócio de implementação desse método, podendo até ser deixado vazio. Para uma interface, é importante que as classes tenham o método, não importando o código que esse método execute, inclusive não importando até se o método está vazio!

A interface é, sim, uma maneira de amarrar classes a um tipo de comportamento que, se usado corretamente, terá as regras de negócio preteridas. No entanto, por só acoplar a necessidade do método descrito, ela não garante que as regras de negócio serão de fato atendidas.

Em caso de dúvidas, estou à disposição!

Um grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Perfeito man!! Esse detalhe sobre "poder realizar qualquer coisa nos métodos" me abriu o olho pra expandir um pouco a minha visão interfaces. Porque eu posso colocar qualquer regra para o método, que vai compilar do mesmo jeito. :D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software