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

Nao sei se entendi bem o encapsulamento do "autenticar"

Por que é mais seguro passar

static login(autenticavel, senha){
       return autenticavel.autenticar(senha);
    }

e...

autenticar(senha){
        return senha == this._senha;
    }

do que passar:

static login(funcionario, senha){
        return funcionario.senha == senha;
    }

e..

 get senha(){
        return this._senha;
    }

? Não entendi porque a opção de cima é mais segura do que a opção de baixo.

3 respostas
solução!

Fala ai Maristela, tudo bem? Eu não diria ser mais seguro, mas, seu código fica mais genérico e organizado em camadas.

Isso porque sua função está recebendo um interface que seja autenticavel, ela pode ser qualquer coisa, não necessariamente um funcionário.

Assim você torna o código mais encapsulado e quem utiliza ela não precisa conhecer detalhes de implementação, pois, isso fica implementado em cada classe que seja autenticavel.

Espero ter ajudado.

Ajudou sim, Matheus! Mto obrigada!

Magina Maristela, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.