ConstructiCat Logo
CodeBust.
Browse section ▾

Dealing with Generalization.

Antipatterns Mascot
Recolher Hierarquia

Problema: Você tem uma hierarquia de classes na qual uma subclasse é praticamente igual à sua superclasse. Solução: Mescle a subclasse e a superclasse.

001
Architectural Patterns Mascot
Extrair Interface

Problema: Vários clientes estão usando a mesma parte da interface de uma classe. Outro caso: parte da interface em duas classes é idêntica. Solução: Mova essa porção idêntica para sua própria interface.

002
Design Patterns Mascot
Extrair Subclasse

Problema: uma classe tem funcionalidades que são usadas apenas em certos casos. Solução: crie uma subclasse e use-a nesses casos.

003
Design Patterns Mascot
Extrair Superclasse

Problema: Você tem duas classes com campos e métodos em comum. Solução: Crie uma superclasse compartilhada para elas e mova todos os campos e métodos idênticos para ela.

004
Refactoring Mascot
Formar Método Template

Problema: Suas subclasses implementam algoritmos que contêm etapas semelhantes na mesma ordem. Solução: Mova a estrutura do algoritmo e as etapas idênticas para uma superclasse, e deixe a implementação das etapas diferentes nas subclasses.

005
Antipatterns Mascot
Subir Corpo de Construtor

Problema: suas subclasses têm construtores com código quase idêntico. Solução: crie um construtor na superclasse e mova para ele o código que é igual nas subclasses. Chame o construtor da superclasse nos construtores das subclasses.

006
Design Patterns Mascot
Subir Campo

Problema: Duas classes têm o mesmo campo. Solução: Remova o campo das subclasses e mova-o para a superclasse.

007
Design Patterns Mascot
Subir Método

Problema: Suas subclasses têm métodos que realizam um trabalho semelhante. Solução: Torne os métodos idênticos e, em seguida, mova-os para a superclasse relevante.

008
Design Patterns Mascot
Descer Campo

Problema: Um campo é usado apenas em algumas subclasses? Solução: Mova o campo para essas subclasses.

009
Code Smells Mascot
Descer Método

Problema: Um comportamento implementado em uma superclasse é usado por apenas uma (ou algumas) subclasses? Solução: Mova esse comportamento para as subclasses.

010
Antipatterns Mascot
Substituir Delegação por Herança

Problema: Uma classe contém muitos métodos simples que delegam a todos os métodos de outra classe. Solução: Faça a classe herdar do delegado, o que torna os métodos delegadores desnecessários.

011
Code Smells Mascot
Substituir Herança por Delegação

Problema: Você tem uma subclasse que usa apenas uma parte dos métodos de sua superclasse (ou não é possível herdar os dados da superclasse). Solução: Crie um campo e coloque nele um objeto da superclasse, delegue os métodos ao objeto da superclasse e elimine a herança.

012