Logo Passei Direto
Buscar
Questão 36/46 Oportunidade de Ampliação da Formação Ler em voz alta [Componente Específico] Para que se realize a multiplicação de probabilidades com maior facilidade, foi desenvolvida, utilizando-se 0 padrão MVC (Model-View-Controller), uma calculadora que pode ser configurada de dois modos: comum e probabilista. No primeiro, as multiplicações ocorrem de forma ordinária. Já no segundo, as multiplicações são feitas utilizando-se uma fórmula específica. A classe a seguir, escrita na linguagem Java, define 0 método "multiplica", 0 qual é executado quando 0 botão da multiplicação é pressionado e recebe como parâmetro os valores que 0 usuário deseja usar na operação, além de possuir uma variável de instância do tipo "CalculadoraController". O método "alteraModo" é encarregado de alterar a instância para a qual essa variável faz referência, conforme 0 modo selecionado pelo usuário. A instância interage com as partes do modo apropriadas à solicitação realizada pelo usuário. Quando 0 usuário deseja usar 0 modo probabilista, a variável modo tem 0 valor 1, caso contrário, ela tem 0 valor 0. public class Calculadora { private CalculadoraController C; private int modo; public double multiplica (double[] valores) { return c.multiplica (valores); } public void alteraModo() { if (modo 1) C new ProbabilistaController(); else C= new OrdinarioController(); } O diagrama de classe abaixo mostra a hierarquia de controllers definida para a implementação da calculadora descrita. A hierarquia de classes de controle representa uma família de algoritmos intercambiáveis, por isso, 0 comportamento dos componentes da view, a cada instante, pode ser dinamicamente alterado, bastando trocar 0 tipo da instância referenciada pela variável "C". CalculadoraController + multiplica(valores double[ double ProbabilistaController OrdinarioController Pesquisar por imagem 17 + multiplica(valores double D : double + multiplica(valores double[ D double Considerando O cenário descrito, avalie as afirmações a seguir e assinale a alternativa correta. A A hierarquia exibida ilustra 0 uso do padrão de projetos Strategy. B o padrão composto MVC define a existência de um único controller e, portanto, a solução proposta não caracteriza O uso desse padrão. C O método "multiplica" da classe "Calculadora" chama 0 método "multiplica" de "CalculadoraController", 0 que caracteriza uma conversão de interfaces e, portanto, 0 uso do padrão de projetos Adapter. D 1) A classe "CalculadoraController" deve ser a única responsável por implementar a lógica de multiplicação, pois 0 padrão MVC exige que toda a lógica de negócio esteja centralizada em um único controller. E o uso do padrão MVC impede a reutilização de código entre OS controllers, obrigando que cada um implemente suas próprias versões do método "multiplica".
User badge image
Helder Silva

mês passado

Respostas

User badge image

Ed Verified user icon

mês passado

Vamos analisar as alternativas com base no cenário descrito: A) A hierarquia exibida ilustra o uso do padrão de projetos Strategy. - Correto. O padrão Strategy permite que uma família de algoritmos seja definida e intercambiável em tempo de execução, exatamente como ocorre com os controllers "ProbabilistaController" e "OrdinarioController" que implementam diferentes estratégias para o método "multiplica". B) O padrão composto MVC define a existência de um único controller e, portanto, a solução proposta não caracteriza o uso desse padrão. - Incorreto. O padrão MVC não exige um único controller; pode haver múltiplos controllers para diferentes funcionalidades. C) O método "multiplica" da classe "Calculadora" chama o método "multiplica" de "CalculadoraController", o que caracteriza uma conversão de interfaces e, portanto, o uso do padrão de projetos Adapter. - Incorreto. Não há indicação de adaptação de interfaces, apenas delegação de chamada, característica do Strategy. D) A classe "CalculadoraController" deve ser a única responsável por implementar a lógica de multiplicação, pois o padrão MVC exige que toda a lógica de negócio esteja centralizada em um único controller. - Incorreto. MVC não exige centralização da lógica em um único controller; pode haver vários controllers especializados. E) O uso do padrão MVC impede a reutilização de código entre os controllers, obrigando que cada um implemente suas próprias versões do método "multiplica". - Incorreto. MVC não impede reutilização de código; reutilização pode ser feita via herança ou composição. Portanto, a alternativa correta é: A) A hierarquia exibida ilustra o uso do padrão de projetos Strategy.

Essa resposta te ajudou?

0
Dislike0

Ainda não achou a resposta?

  • Integrado com os principais modelos de IA do mercado
  • Respostas em segundos
  • IA treinada para estudantes brasileiros.
PasseIA logoEvolua sua forma de estudar

Cadastre-se ou realize login

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina