Dúvida quanto a uma questão sobre acoplamento!

Atualmente estou efetuando um estudo intensivo no livro de kathy sierra, voltado para certificação java, voltado para o exame (310-055), mas tive dúvidas quanto a uma questão básica, porém gostaria um pouco de esclarecimento quanto as alternativas C e E. Não entendi muito bem, mas agradeço quem puder ajudar.

Neste caso a questão se encontra na página 164 para quem possui o livro. E já se encontram com as respostas como podem ver acima, porém ainda não me conformei, mesmo vendo o resultado.

Contudo possuo dúvidas apenas em entender as alternativas C e E.
:cry:

Aproveitando o embalo gostaria de lançar outra questão em que também tive dificuldades sobre acoplamento no mesmo livro da página 166. Esta questão é um pouco mais complicada, porque especificamente trata-se de falar sobre baixo acoplamento, em que entendemos bem ao tratar-se de componentização. Segue abaixo a questão:

Em que também errei quando fui conferir o resultado, mas gostaria de abrir aqui um debate e esclarecer de uma vez por todas a partir deste tópico.

Cito abaixo uma síntese que encontra-se no livro sobre o assunto:

Em que foi de grande ajuda para tentar entender os aspectos que serão abordados no exame.
Gostaria de poder discutir cada alternativa dos enunciados mencionados, ou seja, porque as alternativas certas estão certas e as erradas estão erradas.

Fallow!!! :wink:

Em relação à primeira dúvida…

Uma relação HAS-A não precisa ser relativa a 2 classes diferentes.
A classe pode ter uma variável de instância que seja uma referência a um objeto de sua própria classe…

por exemplo:

class Reference {
private Reference R = new Reference();
...
}

essa classe possue um elemento que é de sua própria classe. Portanto “Reference HAS-A Reference”. O que prova que não é necessário termos 2 tipos de classe diferentes para existir essa relação.

Em relação a resposta E:

  • Quando uma classe A possue uma referencia direta a uma segunda classe B, a classe A poderá acessar todas as variaveis e métodos não privados da classe B, o que pode indicar um Low Coupling (ou seja, uma classe ter acesso a muitos elementos de outra classe, gerando uma certa dependência entre as duas classes, o que é ruim). Porém se forem usadas outras ferramentas, como encapsulamento, e presença de poucos métodos não privados na classe B, poderá não existir Low Coupling. Por isso que a afirmação está errada, porque é muito genérica.

certo?

Valeu Felipe pelas explicações. Tive uma certa preocupação quanto a este tipo de questões, pois como as de Garbage Collection, são sempre uma questão certa na prova.

Fallow! :wink: