ConstructiCat Logo
CodeBust.
Browse section ▾

Dealing with Generalization.

Architectural Patterns Mascot
Colapsar jerarquía

Problema: Tienes una jerarquía de clases en la que una subclase es prácticamente igual que su superclase. Solución: Fusiona la subclase y la superclase.

001
Antipatterns Mascot
Extraer interfaz

Problema: Varios clientes utilizan la misma parte de la interfaz de una clase. Otro caso: parte de la interfaz de dos clases es idéntica. Solución: Mueve esa porción idéntica a su propia interfaz.

002
Antipatterns Mascot
Extraer subclase

Problema: Una clase tiene características que solo se usan en determinados casos. Solución: Crea una subclase y úsala en esos casos.

003
Refactoring Mascot
Extraer superclase

Problema: Tienes dos clases con campos y métodos comunes. Solución: Crea una superclase compartida para ellas y mueve a ella todos los campos y métodos idénticos.

004
Code Smells Mascot
Formar Método Plantilla

Problema: Tus subclases implementan algoritmos que contienen pasos similares en el mismo orden. Solución: Mueve la estructura del algoritmo y los pasos idénticos a una superclase, y deja la implementación de los pasos diferentes en las subclases.

005
Design Patterns Mascot
Subir el cuerpo del constructor

Problema: tus subclases tienen constructores con código que es casi idéntico. Solución: crea un constructor en la superclase y traslada a él el código que es igual en las subclases. Llama al constructor de la superclase desde los constructores de las subclases.

006
Architectural Patterns Mascot
Subir campo

Problema: Dos clases tienen el mismo campo. Solución: Elimina el campo de las subclases y muévelo a la superclase.

007
Design Patterns Mascot
Subir Método

Problema: Tus subclases tienen métodos que realizan un trabajo similar. Solución: Haz que los métodos sean idénticos y luego muévelos a la superclase correspondiente.

008
Refactoring Mascot
Bajar campo

Problema: ¿Se usa un campo solo en unas pocas subclases? Solución: Mueve el campo a esas subclases.

009
Architectural Patterns Mascot
Bajar método

Problema: ¿El comportamiento implementado en una superclase es utilizado por una sola subclase (o por unas pocas)? Solución: Mueve este comportamiento a las subclases.

010
Refactoring Mascot
Reemplazar delegación con herencia

Problema: Una clase contiene muchos métodos sencillos que delegan en todos los métodos de otra clase. Solución: Haz que la clase sea heredera del delegado, lo que vuelve innecesarios los métodos delegantes.

011
Design Patterns Mascot
Reemplazar Herencia con Delegación

Problema: Tienes una subclase que usa solo una parte de los métodos de su superclase (o no es posible heredar los datos de la superclase). Solución: Crea un campo y coloca en él un objeto de la superclase, delega los métodos en el objeto de la superclase y elimina la herencia.

012