Refatoração

Catálogo de Refatoração: Simplificando Expressões Condicionais #23

Postado em Atualizado em

Substituir Comando Condicional por Polimorfismo – use quando encontrar um comando condicional para um método que seleciona diferentes tipos de comportamentos de acordo com o tipo de objeto. Mova cada ramificação do comando condicional para um método de sobrescrita em uma subclasse, tornando abstrato o método original.

Introduzir Objeto Nulo – use quando encontrar verificações repetidas de valores nulas. Substitua o valor por um objeto polimórfico nulo.

Introduzir Asserção – use quando encontrar uma sessão de código que faz alguma suposição sobre o estado do programa. Torne a suposição explicita com uma asserção.

Para todas as informações, veja o post inicial.

“Irmãos, peço, pela autoridade do nosso Senhor Jesus Cristo, que vocês estejam de acordo no que dizem e que não haja divisões entre vocês. Sejam completamente unidos num só pensamento e numa só intenção.” 1 Coríntios 1:10

Catálogo de Refatoração: Simplificando Expressões Condicionais #2

Postado em Atualizado em

Consolidar Fragmentos Condicionais Duplicados – use quando encontrar um fragmento de código que é executado em todas as ramificações de uma expressão condicional if-then-else. Mova-a para fora da expressão guardas tornando a intenção do código muito mais clara.

Remover Flag de Controle – use quando encontrar uma variável que esta atuando como uma flag de controle para uma série de expressões booleanas. Substitua todas as flags de controle por break ou return guardas tornando a intenção do código muito mais clara.

Substituir Condições Aninha Por Cláusula Guarda – use quando encontrar um método tem uma lógica condicional que não deixa claro o fluxo normal da execução. Substitua estes casos por clausulas guardas tornando a intenção do código muito mais clara.

Para todas as informações, veja o post inicial.

“A pessoa que me ama obedecerá à minha mensagem, e o meu Pai a amará. E o meu Pai e eu viremos viver com ela.” João 14:23

Catálogo de Refatoração: Simplificando Expressões Condicionais #1

Postado em

Lógica condicional pode se tornar traiçoeira, de modo que aqui estão várias refatorações que você pode usar para simplificá-la. Segue as estratégias de refatorações para esse contexto:

Decompor Condicional – use quando encontrar uma estrutura condicional complicada if-then-else. Torne sua intenção mais clara extraindo métodos das condições de avaliação e das partes do then e do else.

Consolidar Expressão Condicional – use quando encontrar uma sequência de testes condicionais agrupados por operadores lógicos OR ou AND nas quais cada um é diferente do outro, mas que a ação resultante na condição da avaliação é a mesma. Torne sua intenção mais clara extraindo método destas condições utilizando-a com uma única expressão condicional.

Para todas as informações, veja o post inicial.

“Jesus respondeu: — Eu sou o pão da vida. Quem vem a mim nunca mais terá fome, e quem crê em mim nunca mais terá sede.” João 6:35

Catálogo de Refatoração: Organizando Dados #6

Postado em

1429038287_86543231Substituir Enumeração pelo Padrão State ou Strategy – use quando encontrar uma classe que tenha uma enumeração numérica utilizada como variáveis inteiras que tenha influência no comportamento da classe, mas que por algum motivo você não consegue substituir por subclasses. Substitua a enumeração por um objeto que represente o estado do objeto original usando State ou Strategy, escolhendo o que se ajustar melhor a situação especifica.

Substituir Subclasse por Campo – use quando encontrar subclasses que diferem somente em métodos que retornam dados constantes. Transforme os métodos em campos na superclasse e elimine as subclasses uma vez que esse tipo de situação não se justifica sua existente.

Para todas as informações, veja o post inicial.

“Tenha cuidado com o que você pensa, pois a sua vida é dirigida pelos seus pensamentos.” Provérbios 4:23

Catálogo de Refatoração: Organizando Dados #5

Postado em

advertising-by-the-numbers-its-big-business-with-big-numbers-to-matchSubstituir Enumeração por Classe – use quando encontrar uma classe que tenha uma enumeração numérica utilizada como variáveis inteiras de forma que não afete seu comportamento. Substitua o numero por uma nova classe.

Substituir Enumeração por Subclasse – use quando encontrar uma classe que tenha uma enumeração numérica utilizada como variáveis inteiras que tenha influência no comportamento da classe. Substitua a enumeração por subclasses e use polimorfismo para lhe dar com o comportamento variável removendo switch ou ifs referentes a decisões comportamentais.

Para todas as informações, veja o post inicial.

“Guardo a tua palavra no meu coração para não pecar contra ti.” Salmos 119:11

Catálogo de Refatoração: Organizando Dados #4

Postado em

checkoffcolorEncapsular Campo – use quando encontrar um atributo público. Torne-o privado e forneça métodos de acesso.

Encapsular Coleção – use quando encontrar um método que retorna uma coleção encapsulada como privada. Faça-o retornar uma visão apenas de leitura e forneça métodos de adição e remoção.

Substituir Registro por Classe de Dados – use quando encontrar um pedaço de código usando variáveis de tipo registro em um ambiente de programação não orientado a objetos. Crie um objeto de dados para agrupar essas variáveis sem comportamento (conhecido como anêmico) para representar o registro.

Para todas as informações, veja o post inicial.

“Não façam nada por interesse pessoal ou por desejos tolos de receber elogios; mas sejam humildes e considerem os outros superiores a vocês mesmos.” Filipenses 2:3-4

Catálogo de Refatoração: Organizando Dados #3

Postado em

pastas-do-computador1Transformar Associação Unidirecional em Bidirecional – use quando encontrar duas classes que precisar usar os recursos uma da outra, mas há somente uma conexão unidirecional apenas.

Transformar Associação Bidirecional em Unidirecional – use quando encontrar duas classes com associação bidirecional, mas uma classe não precisa mais dos recursos da outra. Elimine o lado desnecessário da associação. 

Substituir Número Mágico por Constante Simbólica – use quando encontrar um número literal com um significado especial. Crie uma constante, nomeie-a de acordo com seu significado e substitua o número por ela.

Para todas as informações, veja o post inicial.

“Louvemos ao Deus e Pai do nosso Senhor Jesus Cristo! Por causa da sua grande misericórdia, ele nos deu uma nova vida pela ressurreição de Jesus Cristo. “1 Pedro 1:3