Клас даних
Симптоми і ознаки
Класи даних — це класи, які містять тільки поля і прості методи для доступу до них (геттери і сеттери). Це просто контейнери для даних, які використовуються іншими класами. Ці класи не містять ніякої додаткової функціональності і не можуть самостійно працювати з даними, якими володіють.
Причини появи
Це нормально, коли клас на початку свого життя містить усього лише декілька публічних полів (а може навіть і парочку геттерів/сеттерів). Проте, справжня сила об’єктів полягає в тому, що вони можуть зберігати типи поведінки або операції над власними даними.
Лікування
-
Якщо клас містить публічні поля, застосуйте інкапсуляцію поля щоби приховати їх з прямого доступу, дозволивши доступ тільки через геттери і сеттери.
-
Застосуйте інкапсуляцію колекції для даних, які зберігаються в колекціях (на зразок масивів).
-
Огляньте клієнтський код, який використовує цей клас. Можливо, там ви знайдете функціональність, яка виглядала б доречніше в самому класі даних. В цьому випадку використайте переміщення методу і відокремлення методу для перенесення функціональності в клас даних.
-
Після того, як клас наповнився осмисленими методами, можливо, варто подумати про знищення старих методів доступу до даних, які дають занадто відкритий доступ до даних класу. В цьому вам допоможе видалення сеттера і приховання методу.
Виграш
-
Покращує розуміння і організацію коду. Операції над певними даними тепер зібрані в одному місці, їх не потрібно шукати по всьому коду.
-
Може розкрити факти дублювання клієнтського коду.