---
title: "Класс данных"
type: "code-smell"
slug: "data-class"
url: "http://localhost:3000/ru/smells/data-class.md"
category: "Замусориватели"
description: "Классы данных — это классы, которые содержат только поля и простейшие методы для доступа к ним (геттеры и сеттеры). Это просто контейнеры для данных, используемые другими классами. Эти классы не содержат никакой дополнительной функциональности и не могут самостоятельно работать с данными, которыми владеют."
---
# Класс данных

> Классы данных — это классы, которые содержат только поля и простейшие методы для доступа к ним (геттеры и сеттеры). Это просто контейнеры для данных, используемые другими классами. Эти классы не содержат никакой дополнительной функциональности и не могут самостоятельно работать с данными, которыми владеют.

## Signs and Symptoms

Классы данных — это классы, которые содержат только поля и простейшие методы для доступа к ним (геттеры и сеттеры). Это просто контейнеры для данных, используемые другими классами. Эти классы не содержат никакой дополнительной функциональности и не могут самостоятельно работать с данными, которыми владеют.

## Reasons for the Problem

Это нормально, когда класс в начале своей жизни содержит всего лишь несколько публичных полей (а может даже и парочку геттеров/сеттеров). Тем не менее, настоящая сила объектов заключается в том, что они могут хранить типы поведения или операции над собственными данными.

## Payoff

* Улучшает понимание и организацию кода. Операции над определёнными данными теперь собраны в одном месте, их не надо искать по всему коду.
* Может вскрыть факты дублирования клиентского кода.
## Relations

**Treated by**

- [Инкапсуляция поля](/ru/encapsulate-field.md)
- [Инкапсуляция коллекции](/ru/encapsulate-collection.md)
- [Перемещение метода](/ru/move-method.md)
- [Извлечение метода](/ru/extract-method.md)
- [Удаление сеттера](/ru/remove-setting-method.md)
- [Сокрытие метода](/ru/hide-method.md)

