ConstructiCat Logo
CodeBust.
Browse section ▾

Organizing Data.

Design Patterns Mascot
Cambiar Asociación Bidireccional por Unidireccional

Problema: Tienes una asociación bidireccional entre clases, pero una de las clases no usa las características de la otra. Solución: Elimina la asociación no utilizada.

001
Design Patterns Mascot
Cambiar referencia por valor

Problema: Tienes un objeto de referencia demasiado pequeño y que cambia con poca frecuencia como para justificar la gestión de su ciclo de vida. Solución: Conviértelo en un objeto de valor.

002
Antipatterns Mascot
Cambiar Asociación Unidireccional a Bidireccional

Problema: Tienes dos clases que necesitan usar cada una las características de la otra, pero la asociación entre ellas es únicamente unidireccional. Solución: Añade la asociación que falta a la clase que la necesita.

003
Code Smells Mascot
Cambiar Valor por Referencia

Problema: Tienes muchas instancias idénticas de una misma clase que necesitas reemplazar con un único objeto. Solución: Convierte los objetos idénticos en un único objeto de referencia.

004
Refactoring Mascot
Duplicar datos observados

Problema: ¿Se almacenan datos de dominio en clases responsables de la GUI? Solución: En ese caso, conviene separar los datos en clases independientes, asegurando la conexión y sincronización entre la clase de dominio y la GUI.

005
Antipatterns Mascot
Encapsular colección

Problema: Una clase contiene un campo de colección y un getter y un setter simples para trabajar con la colección. Solución: Haz que el valor devuelto por el getter sea de solo lectura y crea métodos para añadir o eliminar elementos de la colección.

006
Refactoring Mascot
Encapsular Campo

Problema: Tienes un campo público. Solución: Haz que el campo sea privado y crea métodos de acceso para él.

007
Code Smells Mascot
Reemplazar Array con Objeto

Problema: Tienes un array que contiene varios tipos de datos. Solución: Reemplaza el array con un objeto que tendrá campos separados para cada elemento.

008
Antipatterns Mascot
Reemplazar valor de datos por objeto

Problema: Una clase (o grupo de clases) contiene un campo de datos. El campo tiene su propio comportamiento y datos asociados. Solución: Crea una nueva clase, coloca en ella el antiguo campo y su comportamiento, y almacena el objeto de la clase dentro de la clase original.

009
Design Patterns Mascot
Reemplazar número mágico por constante simbólica

Problema: Tu código usa un número que tiene cierto significado. Solución: Reemplaza ese número por una constante con un nombre legible que explique el significado del número.

010
Architectural Patterns Mascot
Reemplazar Subclase con Campos

Problema: Tienes subclases que se diferencian únicamente en sus métodos (que devuelven constantes). Solución: Reemplaza los métodos con campos en la clase padre y elimina las subclases.

011
Architectural Patterns Mascot
Reemplazar código de tipo con clase

Problema: Una clase tiene un campo que contiene un código de tipo. Los valores de este tipo no se usan en condiciones de operadores y no afectan al comportamiento del programa. Solución: Crea una nueva clase y usa sus objetos en lugar de los valores del código de tipo.

012
Code Smells Mascot
Reemplazar código de tipo con estado/estrategia

Problema: tienes un tipo codificado que afecta al comportamiento pero no puedes usar subclases para deshacerte de él. Solución: reemplaza el código de tipo por un objeto de estado. Si es necesario reemplazar el valor de un campo con código de tipo, se «conecta» otro objeto de estado.

013
Code Smells Mascot
Reemplazar código de tipo con subclases

Problema: tienes un tipo codificado que afecta directamente al comportamiento del programa (los valores de este campo disparan distinto código en condicionales). Solución: crea subclases para cada valor del tipo codificado. Luego extrae los comportamientos relevantes de la clase original a estas subclases. Reemplaza el código de control de flujo con polimorfismo.

014
Architectural Patterns Mascot
Autoencapsular Campo

Problema: Usas acceso directo a campos privados dentro de una clase. Solución: Crea un getter y un setter para el campo, y úsalos únicamente a ellos para acceder al campo.

015