Весняний РОЗПРОДАЖ

Клас даних

Також відомий як: Data Class

Симптоми і ознаки

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

Причини появи

Це нормально, коли клас на початку свого життя містить усього лише декілька публічних полів (а може навіть і парочку геттерів/сеттерів). Проте, справжня сила об’єктів полягає в тому, що вони можуть зберігати типи поведінки або операції над власними даними.

Лікування

  • Якщо клас містить публічні поля, застосуйте інкапсуляцію поля щоби приховати їх з прямого доступу, дозволивши доступ тільки через геттери і сеттери.

  • Застосуйте інкапсуляцію колекції для даних, які зберігаються в колекціях (на зразок масивів).

  • Огляньте клієнтський код, який використовує цей клас. Можливо, там ви знайдете функціональність, яка виглядала б доречніше в самому класі даних. В цьому випадку використайте переміщення методу і відокремлення методу для перенесення функціональності в клас даних.

  • Після того, як клас наповнився осмисленими методами, можливо, варто подумати про знищення старих методів доступу до даних, які дають занадто відкритий доступ до даних класу. В цьому вам допоможе видалення сеттера і приховання методу.

Виграш

  • Покращує розуміння і організацію коду. Операції над певними даними тепер зібрані в одному місці, їх не потрібно шукати по всьому коду.

  • Може розкрити факти дублювання клієнтського коду.