Logo Passei Direto
Buscar

Programação

Engenharias
Questão 17/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 o 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. No segundo, as multiplicações são feitas utilizando-se uma fórmula específica. A classe a seguir, escrita na linguagem Java, define o método "multiplica". Ele é executado quando o botão da multiplicação é pressionado, e recebe como parâmetro os valores que o 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 o modo selecionado pelo usuário. A instância interage com as partes do model apropriadas à solicitação realizada pelo usuário. Quando o usuário deseja usar o modo probabilista, a variável modo tem o valor 1, caso contrário, ela tem o 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 que se segue 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, o comportamento dos componentes da view, a cada instante, pode ser dinamicamente alterado, bastando trocar o tipo da instância referenciada pela variável "c". Considerando esse cenário, avalie as afirmações a seguir. I. A hierarquia exibida ilustra o uso do padrão de projetos Strategy. II. 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. III. 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. É correto apenas o que se afirma em: A I. B II. C I e III. D II e III.
User badge image
Warley Santos

há 19 horas

Respostas

User badge image

Ed Verified user icon

há 19 horas

Vamos analisar cada afirmativa: I. A hierarquia exibida ilustra o uso do padrão de projetos Strategy. Correto. O padrão Strategy permite a troca dinâmica de algoritmos (aqui, os controllers ProbabilistaController e OrdinarioController), que são intercambiáveis e usados conforme o modo selecionado. II. 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. Correto. O padrão MVC tradicionalmente possui um único controller que gerencia a interação. Aqui, a solução troca a instância do controller, o que não caracteriza um padrão MVC com múltiplos controllers simultâneos. III. 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. O método multiplica simplesmente delega a chamada para o controller atual, não há adaptação de interfaces diferentes, mas sim uso de polimorfismo. Portanto, não caracteriza o padrão Adapter. Conclusão: Apenas as afirmativas I e II estão corretas. Alternativa correta: B) II. Mas atenção: a afirmativa I está correta, e a II também. A alternativa B indica apenas II, a alternativa A indica apenas I, a C indica I e III (III é falso), a D indica II e III (III é falso). Como a única alternativa que contém as afirmativas verdadeiras I e II não está listada, e a questão pede "É correto apenas o que se afirma em:", a única alternativa que está correta é a que contém apenas II, pois I e II são verdadeiros, mas não há alternativa com I e II juntos. Porém, a afirmativa II diz que a solução não caracteriza o uso do padrão MVC, o que é incorreto, pois o padrão MVC está sendo usado, só que com troca dinâmica do controller. Então, a afirmativa II está incorreta. Revisando a afirmativa II: "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." Na verdade, o padrão MVC pode ter variações, e a troca dinâmica do controller não descaracteriza o padrão MVC, apenas é uma implementação flexível. Portanto, a afirmativa II é falsa. Assim, apenas a afirmativa I está correta. Alternativa correta: A) I.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

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

Mais conteúdos dessa disciplina