"Arquitetura" ou padrão

Fala, galera!
Tô desenvolvendo um relatório aqui e devido aos filtros que são feitos para gerar o relatório vi que o código ficou muito cheio de IF’s e, por que não dizer, POG ( :evil: ).
Como ainda sou novato, resolvi perguntar logo aqui o que eu posso estudar pra me ajudar a eliminar esses problemas.

A situação é a seguinte:

Ao escolher gerar um relatório, a Tela Principal pergunta os filtros que serão usados para aquele relatório, retorna pro ControlePrincipal, que envia pra classe geradora de relatórios, que por sua vez envia esses parâmetros pra classe do relatório a ser gerado.

Nesse caso, eu teria que fazer um monte de IF. Se o usuário escolheu usar todos os filtros, se não filtrou nada, se filtrou só algumas coisas… Com 5 filtros são muitas possibilidades…

É bem feia a coisa, mas pelo menos eu reparei nisso antes da coisa se tornar um Code Monster.

Valeu!

A realidade é que por mais que queira fugir, você precisa do IF. A questão é que há formas melhor estruturadas para se fazer isso.
Existe o padrão Strategy, que é bem interessante e deixa um código legível e de fácil compreensão.

http://www.guj.com.br/java/55885-como-nao-utilizar-if-ou-switch#293436

Aqui o Vinigodoy explica, de forma clara, como usar isso aliado ao Polimorfismo.
Abraços.

O Design Pattern Builder também pode ajudar bastante nesse caso.

[]'s

Obrigado, nel e asaudate!
Vou dar uma estudada legal nesses padrões!
Ao implementá-los eu posto aqui.

Grande abraço,