Extrair Superclasse.
Você tem duas classes com campos e métodos em comum.
Crie uma superclasse compartilhada para elas e mova todos os campos e métodos idênticos para ela.
##Example
##Why Refactor
Um tipo de duplicação de código ocorre quando duas classes realizam tarefas semelhantes da mesma forma, ou realizam tarefas semelhantes de maneiras diferentes. Os objetos oferecem um mecanismo embutido para simplificar tais situações por meio da herança. Mas, muitas vezes, essa semelhança passa despercebida até que as classes sejam criadas, exigindo que uma estrutura de herança seja criada posteriormente.
##Benefits
- Deduplicação de código. Os campos e métodos comuns agora “vivem” em um único lugar.
##How to Refactor
-
Crie uma superclasse abstrata.
-
Use Subir Campo, Subir Método e Subir Corpo do Construtor para mover a funcionalidade comum para uma superclasse. Comece pelos campos, pois, além dos campos comuns, você precisará mover os campos usados nos métodos comuns.
-
Procure lugares no código cliente onde o uso de subclasses pode ser substituído pela sua nova classe (como em declarações de tipo).