---
title: "Mover Campo"
type: "refactoring-technique"
slug: "move-field"
url: "http://localhost:3000/pt-br/move-field.md"
category: "Moving Features between Objects"
description: "Problema: Um campo é usado mais em outra classe do que na sua própria classe. Solução: Crie um campo em uma nova classe e redirecione todos os usuários do campo antigo para ele."
---
# Mover Campo

> Problema: Um campo é usado mais em outra classe do que na sua própria classe. Solução: Crie um campo em uma nova classe e redirecione todos os usuários do campo antigo para ele.

## Problem

Um campo é usado mais em outra classe do que na sua própria classe.

## Solution

Crie um campo em uma nova classe e redirecione todos os usuários do campo antigo para ele.

## Why Refactor

Muitas vezes os campos são movidos como parte da técnica [Extrair Classe](/pt-br/extract-class). Decidir em qual classe deixar o campo pode ser difícil. Aqui vai a nossa regra prática: **coloque um campo no mesmo lugar que os métodos que o usam** (ou então onde está a maioria desses métodos).

Essa regra ajudará em outros casos em que um campo simplesmente está no lugar errado.

## How to Refactor

1. Se o campo for público, a refatoração será muito mais fácil se você tornar o campo privado e fornecer métodos de acesso públicos (para isso, você pode usar [Encapsular Campo](/pt-br/encapsulate-field)).
2. Crie o mesmo campo, com métodos de acesso, na classe destinatária.
3. Decida como você vai se referir à classe destinatária. Talvez você já tenha um campo ou método que retorne o objeto apropriado; se não, será preciso escrever um novo método ou campo para armazenar o objeto da classe destinatária.
4. Substitua todas as referências ao campo antigo por chamadas apropriadas aos métodos da classe destinatária. Se o campo não for privado, cuide disso na superclasse e nas subclasses.
5. Exclua o campo na classe original.
## Relations

**Helps you do**

- [Extrair Classe](/pt-br/extract-class.md)
- [Classe Inline](/pt-br/inline-class.md)

**Similar techniques**

- [Mover Método](/pt-br/move-method.md)

**Eliminates smells**

- [Cirurgia com Espingarda](/pt-br/smells/shotgun-surgery.md)
- [Hierarquias de Herança Paralelas](/pt-br/smells/parallel-inheritance-hierarchies.md)
- [Intimidade Inapropriada](/pt-br/smells/inappropriate-intimacy.md)

