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)

Observação Vídeo 4.1 Lei de Demeter

solução

Olá Ricardo! Você esta certo, o segundo exeplo contraria a Lei de Demeter tambem. Veja bem, a Lei de Demeter prega que uma classe não deve conhecer mais do que a quem está sendo invocado. Veja que a classe RelatorioDeDividas tem como variavel de inatancia um objeto Divida, mas não possui um objeto CNPJ. Logo, quando utilizamos divida.getCnpjCredor().getValor() estamos dando mais "conhecimento" do que o devido para a classe RelatosuoDeDividas, pois agora ela sqbe da existencia se um Objeto CNPJ dentro do Objeto divida. Assim alteramos o metodo getCnpjCredor()

Para devolver diretamente o valor do cnpj nao expondo en nao dando "conhecimento" a mais a classe RelatorioDeDividas.

Espero ter ajudado! Bons Estudos!

1 resposta

Olá um próspero ano novo a todos!. No vídeo 4.1 na classe RelatorioDeDividas no método gerarRelatorio() foi implementado a sobrescrita do método toString() da classe Cnpj para evitar de fazer a chamada divida.getCnpjCredor().getValor() pois estaríamos contrariando a lei de demeter. No entanto na mesma classe que gera o relatório no método main temos: divida.getCnpjCredor.setValor("cnpj aqui") isso também não contraria a lei de demeter ou o problema ocorre apenas com encadeamentos de gets ?