Refatorações

152 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
152
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Refatorações

  1. 1. RefatoraçõesAltamirRenan
  2. 2. Extract Interface• Diversos clientes usam o mesmo subconjunto dainterface de uma classe ou duas classes tem parte de suasinterfaces em comum. Extraia o subconjunto para uma interface.• Motivação:▫ Somente parte da interface de uma classe faz sentido para umgrupo de clientes▫ Uma classe tem de trabalhar com qualquer classe que trate umgrupo de requisições▫ Interfaces são uma boa solução quando uma classe tem papéisdistintos em diferentes situações.
  3. 3. Inline Method• A implementação de um método é tão claraquanto o nome do método. Substitua achamada ao método pela sua implementação.• Motivação:▫ Bom para eliminar indireção desnecessária. Sevocê tem um grupo de métodos mal organizados,aplique Inline Method em todos eles seguido deuns bons Extract Methods.
  4. 4. int bandeiradaDoTaxi (int hora) {return (depoisDas22Horas (hora)) ? 2 : 1);}int depoisDas22Horas (int hora) {return hora > 22;}//REFATORADOint bandeiradaDoTaxi (int hora) {return (hora > 22) ? 2 : 1);}
  5. 5. Extract Superclass• Duas classes apresentam características semelhantes.• Motivação:▫ Código duplicado é um dos principais Bad Smells emsistemas. Se você código duplicado em vários lugares,então, quando chega a hora de mudar, você tem mais coisaspara mudar do que você deveria.▫ Uma forma de código duplicado é ter duas classes quefazem coisas semelhantes, da mesma forma, ou coisassemelhantes de diferentes maneiras. Objetos fornecem ummecanismo embutido para simplificar esta situação com aherança.▫ No entanto, muitas vezes você não notara as semelhançasaté ter criado algumas classes, em que você precisa criar aestrutura de herança mais tarde.
  6. 6. Extract Subclass• O principal motivo para o uso é a constatação deque a classe tem um tipo comportamento paraalgumas instâncias da classe e não para outros.Às vezes, isso é sinalizado por um tipo de código,em que você pode usar Replace Type Code withSubclasses ou Replace Type Code withState/Strategy.
  7. 7. Pull UP Field• A superclasse e a subclasse têm os mesmosatributos (field). Mova os atributos repetidos para asuperclasse.• Motivação:▫ Subclasses desenvolvidas independentemente umasdas outras, ou após refatoração, podem tercaracterísticas (features) duplicadas. Atributos podemser duplicados. Estes não necessariamente têm omesmo nome em todas as subclasses. A forma deeterminar se tal acontece é verificar como os atributossão usados por outros métodos. Se eles são usados damesma forma, pode-se generalizá-los.

×