---
title: "Mover campo"
type: "refactoring-technique"
slug: "move-field"
url: "http://localhost:3000/es/move-field.md"
category: "Moving Features between Objects"
description: "Problema: Un campo se utiliza más en otra clase que en la suya propia. Solución: Crea un campo en una nueva clase y redirige hacia él a todos los usuarios del campo antiguo."
---
# Mover campo

> Problema: Un campo se utiliza más en otra clase que en la suya propia. Solución: Crea un campo en una nueva clase y redirige hacia él a todos los usuarios del campo antiguo.

## Problem

Un campo se utiliza más en otra clase que en la suya propia.

## Solution

Crea un campo en una nueva clase y redirige hacia él a todos los usuarios del campo antiguo.

## Why Refactor

A menudo los campos se mueven como parte de la técnica [Extraer clase](/es/extract-class). Decidir en qué clase dejar el campo puede ser complicado. Esta es nuestra regla general: **coloca un campo en el mismo lugar que los métodos que lo usan** (o bien allí donde se encuentre la mayoría de esos métodos).

Esta regla ayudará en otros casos en los que un campo simplemente esté ubicado en el lugar equivocado.

## How to Refactor

1. Si el campo es público, la refactorización será mucho más fácil si haces el campo privado y proporcionas métodos de acceso públicos (para ello, puedes usar [Encapsular campo](/es/encapsulate-field)).
2. Crea el mismo campo con métodos de acceso en la clase receptora.
3. Decide cómo vas a referirte a la clase receptora. Puede que ya tengas un campo o un método que devuelva el objeto adecuado; si no, tendrás que escribir un nuevo método o campo para almacenar el objeto de la clase receptora.
4. Sustituye todas las referencias al campo antiguo por las llamadas apropiadas a los métodos de la clase receptora. Si el campo no es privado, ocúpate de esto en la superclase y las subclases.
5. Elimina el campo en la clase original.
## Relations

**Helps you do**

- [Extraer clase](/es/extract-class.md)
- [Incorporar clase](/es/inline-class.md)

**Similar techniques**

- [Mover método](/es/move-method.md)

**Eliminates smells**

- [Cirugía a tiros](/es/smells/shotgun-surgery.md)
- [Jerarquías de herencia paralelas](/es/smells/parallel-inheritance-hierarchies.md)
- [Intimidad inapropiada](/es/smells/inappropriate-intimacy.md)

