Malos olores: Datos


Los DTOs son una oportunidad. Si los datos forman un buen conjunto, normalmente podemos encontrar un comportamiento que pertenezca a la clase.

Los malos olores resultantes de un mal uso de las estructuras de datos son:

Primitive Obsession

Síntomas

Qué hacer

Para Missing Class:

Para Simulated Types:

Para Simulated Field Accessors:

Si el primitivo es usado para tratar ciertos elementos array, aplica Replace Array with Object.

Recompensas

Contraindicaciones

Data Class

Síntomas

La clase consiste únicamente en datos públicos, o getters y setters. Esto hace al cliente depender de la mutabilidad y representación de la clase.

Qué hacer

  1. Aplica Encapsulate Field al bloque para sólo permitir el acceso a los campos mediante getters y setters.
  2. Aplica Remove Setting Methods a todos los métodos que puedas.
  3. Utiliza Encapsulate Collection para eliminar el acceso directo a alguno de los campos de tipo colección.
  4. Mira en cada cliente del objeto. Probablemente encontrarás que los clientes acceden a los campos y manipulan los resultados, cuando lo debería estar haciendo la propia clase.
  5. Tras analizarlo verás que tienes muchos métodos similares en la clase. Utiliza entonces refactorizaciones como Rename Method, Extract Method, Add Parameter o Remove Parameter para armonizar las firmas y eliminar la duplicidad.
  6. No deberían de necesitarse más accesos a los campos porque los métodos movidos cubren su uso real. Utiliza Hide Method para eliminar el acceso a los getters y setters.

Recompensas

Contraindicaciones

Data Clump

Síntomas

Qué hacer

Recompensas

Contraindicaciones

2019-03-20
Escrito por Samuel de Vega.
Etiquetas