Также известен как Data Class

Запах кода Класс данных

Симптомы и признаки

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

Причины появления

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

Лечение

  • Если класс содержит публичные поля, примените инкапсуляцию поля чтобы скрыть их из прямого доступа, разрешив доступ только через геттеры и сеттеры.

  • Примените инкапсуляцию коллекции для данных, которые хранятся в коллекциях (вроде массивов).

  • Осмотрите клиентский код, который использует этот класс. Возможно, там вы найдёте функциональность, которая смотрелась бы уместнее в самом классе данных. В этом случае используйте перемещение метода и извлечение метода для переноса функциональности в класс данных.

  • После того, как класс наполнился осмысленными методами, возможно, стоит подумать об уничтожении старых методов доступа к данным, которые дают слишком открытый доступ к данным класса. В этом вам поможет удаление сеттера и сокрытие метода.

Выигрыш

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

Устали читать?

Сбегайте за подушкой, у нас тут контента на 7 часов чтения.

Или попробуйте наш интерактивный курс. Он гораздо более интересный, чем банальный текст.

Узнать больше...