Delegação é quando um método m apenas repassa sua responsabilidade para outro método de outra classe, cujo nome desse outro método é igual a m!
Delegação é quando um método m apenas repassa sua responsabilidade para outro método de outra classe, cujo nome desse outro método é diferente de m!
Redirecionamento é quando um método m apenas repassa sua responsabilidade para outro método de outra classe, cujo nome desse outro método é diferente de m!
Redirecionamento é quando um método m apenas repassa sua responsabilidade para outro método de outra classe, cujo nome desse outro método é igual a m!
Question 2
Question
Reconheça o conceito de delegação no código Java abaixo, seguindo o seguinte formato: [classe delegadora–método delegador/objeto delegado–classe delegada–método delegado]
public class GerenteDeVendas{
. . .
public void aumenteVendasTrimestralmente( ){. . .}
. . .
}
public class VicePresidenteDeVendas{
. . .
public void aumenteVendasTrimestralmente( ){
gerDeVendas.aumenteVendasTrimestralmente( );
}
. . .
GerenteDeVendas gerDeVendas;
}
public class Presidente{
. . .
public void aumenteLucros(Financeiro financeiro){
vpDeVendas.aumenteVendasTrimestralmente( );
}
. . .
VicePresidenteDeVendas vpDeVendas;
}
O trecho "vpDeVendas.getGerDeVendas( ).monitoraMarketing( )" corresponde a objeto anônimo de que classe?
public class GerenteDeVendas{
. . .
public void aumenteVendasTrimestralmente( ){. . .}
public void monitoraMarketing( ){. . .}
. . .
}
public class VicePresidenteDeVendas{
public void aumenteVendasTrimestralmente( ){
gerDeVendas.aumenteVendasTrimestralmente( )
} public GerenteDeVendas getGerDeVendas( ){return gerDeVendas;}
. . .
GerenteDeVendas gerDeVendas;
}
public class Presidente{
. . .
public void aumenteLucros(Financeiro financeiro){
vpDeVendas.aumenteVendasTrimestralmente( );
// analisa estratégia de marketing
vpDeVendas.getGerDeVendas( ).monitoraMarketing( );
. . .
}
. . .
VicePresidenteDeVendas vpDeVendas;
}
gerDeVendas.aumenteVendasTrimestralmente( )
Answer
Presidente
GerenteDeVendas
VicePresidenteDeVendas
Question 4
Question
Dentre as mensagens ou invocações de métodos no método aumenteLucros(Financeiro financeiro) da classe Presidente abaixo, aponte qual não satisfaz o princípio "Law of Demeter". Escolha dentre os números 1 a 4!
public class Presidente{
. . .
public void aumenteLucros(Financeiro financeiro){
1 vpDeVendas.aumenteVendasTrimestralmente( );
2 this.verificaDadosContábeis();
// analisa estratégia de marketing
3 vpDeVendas.getGerDeVendas( ).monitoraMarketing( ); . . .
Estoque estoque = new Estoque();
4 estoque.getSaldoGeral();
5 financeiro.consisteDados();
}
. . .
VicePresidenteDeVendas vpDeVendas;
}
Answer
5
4
2
1
3
Question 5
Question
Reconheça o conceito de redirecionamento no código Java da questão 3, seguindo o seguinte formato: [classe delegadora–método delegador/objeto delegado–classe delegada–método delegado]
Ao usar os princípios "Law of Demeter", "Tell, Don't Ask!" e delegação, chegamos ao código Java abaixo. Está tudo correto?
public class GerenteDeVendas{
. . .
public void aumenteVendasTrimestralmente( ){. . .}
1 public void monitoraMarketing( ){. . .}
. . .
}
public class VicePresidenteDeVendas{
public void aumenteVendasTrimestralmente( ){. . .}
2 public void analisaEstrategiaMarketing( ){
3 gerDeVendas.monitoraMarketing( );
4 }
. . .
GerenteDeVendas gerDeVendas;
}
public class Presidente{
. . .
public void aumenteLucros(Financeiro financeiro){
. . .
5 vpDeVendas.analisaEstrategiaMarketing( );
}
. . .
VicePresidenteDeVendas vpDeVendas;
}
Answer
Não
Sim
Question 7
Question
Considerando a "Law of Demeter", o que eu não posso fazer:
Answer
Usar variáveis estáticas!
invocar método de amigo
invocar método de amigo de amigo de amigo
invocar método de amigo de amigo
Question 8
Question
Diferença entre delegação e redirecionamento:
Answer
Delegação é quando um método m apenas repassa sua responsabilidade para outro método de outra classe, cujo nome desse outro método é igual a m!
Delegação é quando um método m apenas repassa sua responsabilidade para outro método de outra classe, cujo nome desse outro método é diferente de m!
Redirecionamento é quando um método m apenas repassa sua responsabilidade para outro método de outra classe, cujo nome desse outro método é diferente de m!
Redirecionamento é quando um método m apenas repassa sua responsabilidade para outro método de outra classe, cujo nome desse outro método é igual a m!