Para que se realize a multiplicação de probabilidades com maior facilidade, foi desenvolvida, utilizando-se o padrão MVC
(Modei-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.
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 o que se afirma em