Vamos agora passar para a interface gráfica que deve ser desenvolvida no pacote ejm.appdesktop.view, utilizando a API Swing. A classe CalculoForm, conforme a Listagem 7, será responsável pela codificação desta interface com o usuário. O resultado visual será como o exemplo da Figura 2.
A interface é bastante simples, possui alguns campos para a entrada de dados, um seletor do tipo de cálculo que deve ser executado e um botão para realizar o cálculo. Os dois últimos campos, Total de Juros e Montante, serão atualizados com os seus valores respectivos após o cálculo ser efetuado pelo Model.
Veja que temos na classe CalculoForm uma ligação apenas com o Controller, através da interface IController. Esta classe é responsável apenas por gerar o formulário e não conhece mais nada da aplicação a não ser o controlador. Após os dados serem inseridos e um clique no botão Calcular, fazemos uma chamada ao método executa() e passamos como parâmetro um objeto da classe CalculoForm. Assim que essa requisição chegar ao Controller, será selecionado o tipo de cálculo que deve ser executado e o método calcular() fará uma chamada ao método específico da classe CalculoService. Após o cálculo ser executado, os dados serão persistidos no banco de dados. Em seguida a execução volta para a classe CalculoController e um novo estado do objeto calculo passa a possuir o valor do total de juros e do montante. Estes valores serão formatados com duas casas após a vírgula pelo método doubleFormat() e inseridos no objeto frame. Por fim, com a alteração no estado do objeto frame, os valores de juros e do montante passam a ser exibidos na interface gráfica.
Nesta primeira parte do artigo, foi apresentada uma visão geral sobre Padrões de Projeto com o foco principal no padrão MVC. Uma breve abordagem sobre o padrão DAO também foi apresentada, demonstrando que este padrão, quando usado simultaneamente com o MVC, deve ser implementado na camada de modelo.