Memória técnica 2 Camada de view - italopaiva/SiMCTA GitHub Wiki

Memória técnica 2 - Camada de View

Problema

Alta replicação de código na camada de view para a criação de formulários para CRUD.

Resumo da solução

Utilização dos padrões Decorator e Template Method para definir formulários comuns para cada entidade e classes decorativas para cada operação do CRUD que se fazia necessária, bem como a definição da ordem de criação dos elementos na tela.

Fatores

  • Replicação de formulários semelhantes nas classes da camada de view;
  • Métodos de criação de elementos gráficos comuns sem uma ordem de execução.

Solução

Para a replicação dos formulários, foi utilizada uma Invenção Pura para criar classes que representassem formulários comuns para todas as operações (cadastrar, alterar e consultar) e aplicado o padrão Decorator para definir as especificidades de cada operação (deixar campos editáveis para a operação de alterar, por exemplo). Dessa forma um formulário de cadastro, por exemplo, seria facilmente gerado criando-se um formulário comum e o decorando com a classe do decorator de cadastro.

O padrão Template Method foi utilizado para definir a ordem de criação dos elementos na tela, onde primeiro são criados os labels e campos normais, depois os campos com máscaras e por fim os botões. Essa abordagem garante que nenhum botão seja criado antes dos campos, evitando que campos nulos sejam enviados em submissões acidentais.

Caso alguma outra entidade venha a surgir no contexto da aplicação, a criação dos formulários de cadastro, alteração e consulta seriam facilmente incorporados utilizando a solução proposta.

O diagrama de classes apresentado na seção 6.3 do Documento de Arquitetura ilustra a solução descrita nesta memória técnica.

Motivação

Reduzir a replicação de código na camada de View, aumentando o desempenho na execução das telas.

Problemas não resolvidos

Não houve problemas não resolvidos.

Alternativas consideradas

Não foram consideradas outras alternativas.