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

Repetição de código

Olá!

Entendi que um dos objetivos da herança e interface é evitar a repetição de código. No exercicio fizemos a mesma coisa do Cliente para Adm e gerente, mas acabou repetindo o mesmo código que para o Cliente:

@Override
public void setSenha(int senha) {
    this.autenticador.setSenha(senha);
}

@Override
public boolean autentica(int senha) {
    return this.autenticador.autentica(senha);

e o contrutor ficou quase igual, com exceção do nome. Por exemplo:

public Administrador() {
    this.autenticador = new AutenticacaoUtil();
}

    public Cliente() {
    this.autenticador = new AutenticacaoUtil();
}

No dia a dia ficaria assim também?

1 resposta
solução!

Boa noite Weslei, tudo bem?

No mundo real o ADM e Gerente iriam extender de Cliente, sendo que possuem os mesmos atributos e comportamentos, mas em tese a herança acaba gerando um acoplamento, recomendo o curso aqui na Alura de Solid, o professor aborda um caso muito parecido com o abordado por você.

Curso de Solid da Alura: https://www.alura.com.br/curso-online-solid-orientacao-objetos-java

Abraço.