Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Interface

No capitulo de Interfaces, é utilizado um exemplo onde existe uma classe abstrata Funcionario e subclasses Gerente e Diretor. Gerente e Diretor precisam autenticar em um sistema, logo é criada uma interface Autenticavel. Gerente e Diretor estendem Funcionario e implementam Autenticavel. O mesmo acontece com Cliente e Fornecedor que apenas implementam Autenticavel, pois autenticam no sistema mas não são funcionários. Até ai tudo bem.

A minha dúvida está no momento em que eu preciso criar manualmente o atributo senha em Gerente, Diretor, Cliente e Fornecedor. Esse atributo é necessário para poder implementar o método de autenticação da interface Autenticavel que todos estes implementam. Qual seria a forma mais correta de não repassar a responsabilidade da criação deste atributo senha para todos que necessitam implementar Autenticavel? Sei que não posso colocar o atributo senha em Funcionario por que nem todos os funcionarios são autenticaveis e mesmo assim não chegaria até Cliente e Fornecedor por que estes não estendem Funcionario.

Ou não, realmente o melhor caminho é que toda classe que implemente Autenticavel crie o atributo senha manualmente já que sem este atributo o método de autenticação não funcionaria.

abraços!

1 resposta
solução!

Fernando, tudo bem ?

Cara infelizmente ou felizmente, a interface apenas te força a implementar os métodos dela.

Você tem que colocar os atributos na mão, um possível solução é criar uma classe que implemente sua interface e herde de outra, ai você poderia colocar o atributo nela e então fazer que suas demais classes herdassem dessa, mas ainda assim pode ser que a regra negócio não seja atendida por todos os casos.

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