Deck Flashcards
Categoría: Bloaters
Cuando el código crece tanto que no puede ser efectivamente manejado.
Long Method
Problema:
Métodos de más de 10 líneas que esconden código superfluo.
Solución:
Dividir métodos utilizando herramientas como NetBeans
Large Class
Problema:
Clases demasiado grandes que se vuelven inmanejables.
Solución:
Separar en clases, subclases o interfaces, por ejemplo, usando herramientas de IDE como NetBeans
Subcategoría: Primitive Obsession
Problema:
Uso de datos primitivos en lugar de objetos, especialmente en momentos de agotamiento durante el desarrollo.
Solución:
Reemplazar primitivos por variables de objetos, subclases o transformar arreglos en objetos.
Subcategoría: Data Clumps
Problema:
Grupos idénticos de variables, como parámetros repetitivos (ejemplo: configuración de conexión a bases de datos).
Solución:
Convertir estos grupos en objetos.
Long Parameter List
Problema:
Uso de más de 3 parámetros, lo que genera dependencia entre clases y aumenta la complejidad.
Solución:
Reemplazar con un objeto que agrupe los parámetros.
Categoría: Ausencia de Principios de Diseño OO
Descripción:
Diseño orientado a objetos aplicado de forma errónea o incompleta.
Subcategoría: Switch Statements
Problema:
Uso excesivo de declaraciones switch.
Solución:
Reemplazar con polimorfismo o métodos específicos según el caso.
Subcategoría: Temporary Field
Problema:
Campos temporales poco usados dentro de una clase.
Solución:
Mover esos campos a una clase separada.
Subcategoría: Refused Bequest
Problema:
Herencia inadecuada con métodos innecesarios heredados.
Solución:
Reestructurar la jerarquía de herencia.
Alternative Classes with Different Interfaces
Problema:
Clases duplicadas con interfaces diferentes.
Solución:
Eliminar duplicidad y unificar.
Change Preventers
Descripción:
Crean dificultades para implementar cambios o anticiparse al desarrollo.
Divergent Change
Problema:
Un cambio en una clase obliga a modificar múltiples métodos.
Solución:
Asociar clases y métodos a un dominio específico del problema.
Shotgun Surgery
Problema:
Un cambio requiere modificar varias clases debido a la división de responsabilidades.
Solución:
Reasignar responsabilidades a clases específicas para encontrar un balance entre estructura y diseño.