Motivação

Todo software, seja ele escrito em Java ou qualquer outra linguagem de programação, é uma engrenagem construída para resolver um conjunto de problemas. Em linhas gerais, o fluxo se resume em:

  1. Operações são oferecidas ao cliente;
  2. Operações podem demandar parâmetros para nortear sua execução;
  3. Operações são executadas a partir dos parâmetros fornecidos;
  4. O resultado do processamento é retornado ao cliente.

Nesse interim, é muito provável que um mesmo parâmetro esteja relacionado a inúmeros caminhos lógicos possíveis, internamente. Quando isso acontece, não raro, o resultado é um código-fonte recheado de blocos condicionais excessivamente longos, prejudicando tanto a confiabilidade quanto a manutenibilidade do software.

Esse artigo mostrará como, a partir do uso de um padrão de projeto conhecido como Strategy, aliado à API de reflexão do Java, podemos transformar uma aplicação que, inicialmente, encontra-se na situação que acabamos de descrever, em outra totalmente refatorada, muito mais bem organizada e simples.

A aplicação

O programa que estudaremos é um utilitário de atualização de propriedades em um arquivo de texto, em que cada propriedade está necessariamente vinculada a um tipo de validador. Como premissa para uma propriedade desse arquivo ser atualizada, é necessário que o valor informado atenda as regras de validação estabelecidas para ela.

Soluções como essa são muito úteis, por exemplo, como utilitários para a configuração de sistemas maiores (automatizando a atualização de arquivos de propriedades, descritores de módulos, bancos de dados, dentre outras fontes).

A Tabela 1 apresenta os detalhes das três propriedades suportadas pelo projeto exemplo, bem como os critérios definidos para os valores por elas aceitos. Todas as condições nela estabeleci ...

Quer ler esse conteúdo completo? Tenha acesso completo