Resumo
Sistemas de software devem evoluir para evitar sua degradação. A técnica de refatoração
com a aplicação de padrões de projeto auxiliam na evolução consistente de software.
Uma oportunidade de refatoração consiste em um trecho de código que pode ser alterado via
refatoração para melhorar características de qualidade deste trecho. Dessa forma, este trabalho
apresenta uma proposta de definição de mecânicas para a busca por oportunidades de refatoração
para Encapsular Classes com Factory, Substituir Árvore Implícita por Composite e
Substituir Envio Condicional por Command. Nele são descritos alguns indícios e refatorações
que auxiliam na solução de tais problemas. Um estudo de caso foi conduzido para avaliar as
oportunidades de refatoração identificadas pelas mecânicas.