Bajar campo.
¿Se usa un campo solo en unas pocas subclases?
Mueve el campo a esas subclases.
##Example
##Why Refactor
Aunque se planeaba usar un campo de forma universal para todas las clases, en realidad el campo solo se usa en algunas subclases. Esta situación puede darse cuando las funcionalidades previstas no llegan a materializarse, por ejemplo.
También puede ocurrir debido a la extracción (o eliminación) de parte de la funcionalidad de jerarquías de clases.
##Benefits
-
Mejora la cohesión interna de la clase. Un campo se ubica allí donde realmente se usa.
-
Al moverlo a varias subclases simultáneamente, puedes desarrollar los campos de forma independiente entre sí. Esto sí genera duplicación de código, así que baja los campos solo cuando realmente tengas la intención de usarlos de formas distintas.
##How to Refactor
-
Declara un campo en todas las subclases necesarias.
-
Elimina el campo de la superclase.