Ed
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.