Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

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.

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