2
respostas

Revendo a Composição em aula 07 Praticando herança e interfaces....

Boa noite ou bom dia!!! peço outra explicação de reutilização de código, porque não entendi muito bem a explicação do vídeo número 01. A partir do momento que ele criou um construtor padrão para utilizar no código começou a ficar meio confuso. Peço desculpas, desde já obrigado!!!

2 respostas

O que acontece é o seguinte: Todas as classes que implementam a Interface Autenticavel são obrigadas a implementar os métodos setSenha e autentica, mas acontece que para todas essas classes a implementação, ou seja, a lógica dos métodos, é exatamente a mesma, e há poucas ou nenhuma chance de que seja necessário uma implementação diferente desses métodos para cada classe que os implemente. Diferente do exemplo utilizado no vídeo 03, da Interface Tributável, em que cada classe que implementa o método getValorImposto tem uma Implementação diferente.

Devido a isso, para não ficar repetindo a mesma lógica, que é unica para todas as classes, e também para facilitar a manutenção, ele criou uma outra classe que implementa essa lógica em um único lugar. Quando ele precisa utilizar essa lógica, ao invés de reescrever sempre, ele sempre vai utilizar o método da classe AutenticacaUtil, com isso ele não repete tanto código, principalmente a lógica, o que facilita a manutenção, pois ele só precisa alterar a lógica em um lugar.

O construtor padrão é para instanciar um objeto da classe AutenticaUtil para o atributo do mesmo tipo, garantindo assim que toda vez que for criada uma instancia da classe Gerente por exemplo, o atributo util não seja Null, e contenha um objeto da classe AutenticaUtil, já que ele utiliza os métodos da mesma e sem essa garantida ele poderia ter um NullPointerException ao tentar acessar um método de um objeto que não existe.

Finalizando, ele continua cumprindo o contrato da Interface Autenticável, e implementando os métodos obrigatórios, mas agora ele delega a lógica para a classe AutenticavelUtil, sem a necessidade de reescrever a mesma em todas as classes.

Infelizmente eu sou péssimo em explicações breves mas espero ter ajudado.

Boa Noite.

Boa noite ou bom dia!!! Muito obrigado, eu sou do tipo de pessoa que gosta de explicações mais extensas como esta que você fez e detalhadas...

Boa explicação..